Factory Method

방세현·2023년 4월 21일
0

디자인패턴

목록 보기
3/9

Factory Method

Factory Method는 인스턴스를 생성하는 공장을 Template Method패턴으로 구성한 것이다.

  • framework: 인스턴스를 생성(Factory클래스의 factoryMethod를 이용해 Product객체 생성), 위 그림에서 TemplateMethod는 factoryMethod
  • 구체적인 내용: 내용 구현

즉, framework 패키지는 정의만 하고, 구현은 구체적인 내용 부분에서 한다. 프레임워크 페키지는 구체적인 내용부분의 페키지에 의존하고 있지 않다는 것이다.

{
//factoryMethod(Creator)
public final Product create (String owner) {
    Product p = createProduct(owner);
    return p;
}

//factoryMethod(ConreateCreator)
protected Product createProduct(String owner) {
    return new IDCard(owner);
}

이점

Factory Method를 사용하면 같은 프레임워크를 사용해(framework 패키지 수정 없이) 다른 '공장'과 다른 '제품'을 추가로 정의할 수 있다.

static Factory Method

인스턴스 생성을 위한 클래스 메소드(static 메소드) 전반을 Factory Method라고 부르는 경우가 있다. 이것은 GOF의 Fectory Method 패턴과는 다르지만, Java에서 인스턴스를 생성할 때 자주 사용되는 기법이다.

코드: https://github.com/lawijdo201/Design-Pattern
출처: Java 언어로 배우는 디자인 패턴 입문

0개의 댓글