[Design Pattern] Factory Method Pattern

Gavin Ariel Lee·2021년 10월 15일
0

Factory Method Pattern

  • 조건에 따라 객체를 분기하여 생성하는 것을 직접하지 않고 팩토리라는 클래스에 위임하는 것
  • 객체 생성처리를 서브 클래스로 분리하여 처리하도록 하는 패턴
  • 여러개의 서브 클래스를 가진 슈퍼 클래스가 입력에 따라 자식클래스 중 하나의 인스턴스를 반환
  • 생성 패턴 중 하나

Factory class 정의

public class TypeFactory {
    public Type createType(String type){
        Type returnType = null;
        switch (type){
            case "A":
                returnType = new TypeA();
                break;

            case "B":
                returnType = new TypeB();
                break;

            case "C":
                returnType = new TypeC();
                break;
        }

        return returnType;
    }
}

객체 생성이 필요한 class 정의

public class ClassA {
    public Type createType(String type){
        TypeFactory factory = new TypeFactory();
        Type returnType = factory.createType(type);

        return returnType;
    }
}

조건에 따른 생성 부분을 직접하지 않고 팩토리 클래스 위임

장점

  • 유연하며 확장 용이
    객체의 자료형이 하위 클래스에 의해 결정되므로 기존 소스코드 변경할 필요없이 새로운 하위클래스만 생성 가능

  • 객체간 낮은 결합도
    팩토리 클래스를 통해 간접적으로 객체 생성, 인터페이스를 정의하고 자식클래스에서 구현

  • 유지 보수 용이
    결합도가 낮기때문에 최소 클래스만 수정 가능

profile
As you wish

0개의 댓글