학습목표
  • 팩토리 메소드 패턴에서 템플릿 메소드 패턴의 사용됨을 안다.
  • 팩토리 메소드 패턴에서의 구조와 구현의 분리를 이해하고 구조와 구현의 분리의 장점을 안다.


빨간 구역은 framework 패키지

파란 구역은 concrete 패키지입니다.


설명에서도 템플릿 메소드가 나오듯이 두 가지 패턴이 굉장히 헷갈리는 패턴입니다. 


강의 외에 두 가지가 차이가 잘 이해가 가지 않아서 좀 더 찾아본 결과 제 결론은 이렇습니다


템플릿 메소드 : 슈퍼클래스에서 로직의 흐름을 정하고, 서브클래스는 상속받은 로직의 흐름을 유지하고 , 기능을 구체화 시킵니다.

    Ex)

    로직의 흐름 : (A에서 B로 갈꺼다)

    기능 정의    : C와 D를 거쳐 A에서 B로 간다,  C와 E를 거쳐 A에서 B로 간다.


팩토리 메소드 : 서브클래스에서 오브젝트 생성 방법을 결정하는 것. 템플릿 메소드는 흐름이지만 팩토리 메소드는 오브젝트를 생성하는 것

                     Ex)
                     아이템을 만드는 과정 : (  a-b-c  ) ->  Item만듬         * 이 과정에서 (a-b-c)로직은 템플릿   item을 만든 다는 것은 펙토리

                      서브클래스 : (a - b - c) ->Item1을 만듬,  (d - e - f) -> item2


[소스 : https://github.com/kimjongmo/DesignPattern/tree/master/04FactoryMethod]

[출처:https://www.youtube.com/watch?v=-gyoG-7MHLI&list=PLsoscMhnRc7pPsRHmgN4M8tqUdWZzkpxY&index=4]




+ Recent posts