디자인 패턴

Factory 패턴

가든_ 2022. 9. 12. 01:06

생성 패턴(Creational Patterns)

생성패턴은 객체의 생성에 관련된 패턴으로 객체의 생성절차를 추상화하는 패턴이다.

객체를 생성-합성하는 방법 / 객체의 표현방법과 시스템을 분리한다.

특징

생성패턴은 시스템이 어떤 구체적인 클래스를 사용하는지에 대한 정보를 캡슐화한다.

생성패턴은 클래스의 인스턴스들이 어떻게 만들고 어떻게 맞붙는지에 대한 부분을 숨긴다.

즉, 객체의 생성과 조합을 캡슐화해서 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공한다.


팩토리 패턴(Factory Pattern)

객체 생성 과정에서 간단히 사용 가능한 패턴

객체 생성을 위한 객체를 별도로 만들어 같은 인터페이스로 다른 객체가 생성하도록 한다.

객체 생성하는 코드를 분리하여 결합도를 낮추어 코드를 건드리는 횟수를 최소화 하기 위한 패턴

❓ 결합도가 낮아지는 이유
다형성을 이용하였기 때문, 인터페이스를 구현한 객체들은 같은 인터페이스를 바라보기 때문에 코드에 유연함이 있기 때문이다.
❓ 코드를 건드리는 횟수가 최소화되는 이유
객체를 생성하는 부분을 분리시켰기 때문에 객체의 추가/수정이 일어나도 객체를 생성하는 코드만 건들면 되기 때문이다.

구현방식


구현 코드

SimpleIronManFactory의 CreateIronMan에 있는 코드 ironMan→Go는 오류 확인을 위해 쓴 것.

지워야하는데 깜박했다..

아래 예제를 보고 C++으로 구현해 보았다.

참고 사이트

biggwang의 개발 블로그