본문 바로가기

IT/Design Pattern

(2)
Abstract Factory Pattern 문제 어떻게 하면 같은 제품군에 속한 제품들의 객체만을 생성해서 사용하도록 명확히 보장받을 수 있는가? 예를들어 타입A 제품의 종류는 A1, A2가 있으며 타입B 제품의 종류는 B1, B2 가 있다. 제품 생산시 1번 제품군은 A1, B1이며 2번 제품군은 A2, B2이다. 조건에 따라 제품군으로 분류된 제품만을 생성해야 한다. 방법1 - 제품군을 생성할 때마다 조건 비교를 한다. - 이 방법은 조건문이 곳곳에 들어가게 된다. 추후 제품이 추가되는 경우 조건문이 들어간 부분을 모두 찾아서 수정해야한다. 아래 코드와 같이 생성함수에서 추가된 제품의 종류를 비교해야 한다. - 샘플 [code cpp] class productA {}; class productB {}; class productA1 : publ..
Factory Method Pattern 객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브클래스에서 책임지도록 한다. 유용한 경우 - 구체적으로 어떤 클래스의 객체를 생성해야 할지 미리 알지못하는 경우 - 객체의 종류별로 객체 생성과 관련된 부분을 국지화 시키는 경우 장점 - 어떤 객체를 생성할 것인지와는 무관하게 동일한 형태로 프로그래밍이 가능하다. ; 당연하다. 클래스 상속을 통한 다형성을 구현하므로 ... - 클라이언트가 직접 객체를 생성하는 것보다 유연한 확장성 구조를 가지게 된다. ; 새로운 객체를 생성하거나 이전 객체를 확장해서 생성하고자 할 때 새로운 하위 클래스를 정의하고 Factory Method에 해당하는 멤버 함수만 Override 시키면 된다. ; 다시 말하자면 객체 생성과..