CHAPTER 13 추상 팩토리 패턴 - daybreak6/java-design-pattern GitHub Wiki
추상 팩토리 패턴은 관련성 있는 여러 종류의 객처를 일관성 있는 방식으로 생성할 때 유 용하다
- AbstractFactory: 실제 팩토리 클래스의 공통 인터페이스. 각 제품의 부품을 생성하는 기능을 추상 메서드로 정의한다.
- ConcreteFactory: 구체적인 팩토리 클래스로 AbstractFactory 클래스의 추상 메서드를 오버라이드함으로써 구체적인 제품을 생성한다.
- AbstractProduct: 제품의 공통 인터페이스
- ConcreteProduct: 구체적인 팩토리 클래스에서 생성되는 구체적인 제품
- ElevatorFactory 클래스는AbstractFactory 역할을한다.
- LGElevatorFactory 클래스와 HyundaiElevatorFactory 클래스는 ConcreteFactory 역할을 한다.
- Motor 클래스는 AbstractProductA 역할을 한다.
- LGMotor 클래스와 HyundaiMotor 클래스는 ConcreteProductA 역할을 한다.
- Door 클래스는 AbstractProductB 역할을 한다.
- LGDoor 클래스와 HyundaiDoor 클래스는 ConcreteProductB 역할을 한다.