Abstract Factory패턴은 말그대로 공장을 인터페이스화 하고 캡슐화 시키는 형태이며
Factory Method 는 말그대로 어떤 객체를 생성하는 역할을 담당하는 함수를 말한다
그에 따라 Abstract Factory패턴도 Factory Method 를 응용한 형태로 구현 될수 있으며,
이전 포스팅에도 Factory Method 의 흔적이 남아있는것을 알 수 있다.
즉, 위의 그림에서 나와있는 부분에서 설명하자면 Abstract Factory는 재료들을 추상적인 형태로 만드는 것을 의미하며
Factory Method는 공장 내에 여러 라인들(검 손잡이 부분을 만드는 라인, 검 날 부분을 만드는 라인)등을 나타낸다
위에 주석에도 나와있지만 클래스의 인스턴스를 만드는 시점을 서브 클래스에게 넘겨준다는 말이다.
한마디로 Abstract Factory는 만들어질 클래스를 추상화 하는 것이며
Factory Method는 객체의 생성을 하위 클래스에게 위임하는 것이다
또한 Factory Method 패턴은 상속을 통해 객체가 생성되며
Abstract Factory 패턴은 객체 구성(Composition)을 통해 만들어진다..
Factory Method는 아래와 같은 형식일때 사용하면 좋으며
|
장점으로는 다음과 같은것이 있다.
|
단, 단점은 생성할 객체의 종류가 달라질때마다 새로운 하위 클래스를 정의해야 한다는 점이다
이는 불필요하게 많은 클래스를 정의하게 만들수 있는 문제를 내포하고 있으며
Abstract Factory 패턴과 마찬가지로 객체의 동적할당에 대한부분만 있으며
따로 해제에 대한 부분은 없으므로 특히 신경을 써주어서 구현하여야 한다.
[출처] GOF 디자인 패턴 두번째 - Factory Method|작성자 풍풍풍
'프로그래밍 > 디자인패턴' 카테고리의 다른 글
GoF 의 디자인 패턴 (0) | 2014.06.20 |
---|---|
추상 팩토리 (Abstract Factory) 패턴 (0) | 2014.03.31 |
Builder Pattern (0) | 2014.03.31 |
Disign Pattern : 디자인 패턴의 개념 (0) | 2014.02.25 |
GoF 의 디자인 패턴 (0) | 2013.04.08 |