팩토리 메서드 패턴
- 객체 생성 관련 디자인 패턴.
- 다양한 구현체가 있고, 그 중에서 특정한 구현체를 만들 수 있는 다양한 팩토리를 제공할 수 있는 패턴이다.
- 구체적으로 어떤 인스턴스를 만들지는 서브 클래스가 정한다.
어떤 인스턴스를 생성하려는 책임을,
구체적인 클래스가 아니라,
추상적인 인터페이스의 메서드로 감싸기 위한 패턴이다.
팩토리 역할을 할 Creator 인터페이스를 만들고,
이 인터페이스를 실체화한 ConcreteCreator에서,
추상 메서드를 구체화한다.
이 메서드를 통해 구체적인 인스턴스가 생성된다.
이에 대응하는, 팩토리에서 만드는 오브젝트를 추상화한, 인터페이스인 Product를, 정의하고,
이를 실체화한 ConcreateProduct를 ConcreteProduct에서 만들도록 구성한다.
Creator 인터페이스가 Product 인터페이스를 의존하도록 한다.
확장에 열려있고 변경에 닫혀있는 객체 지향 원칙
기존 코드를 변경하지 않으면서 새로운 기능을 확장할 수 있는 구조로 만드는 객체 지향 원칙이다.
팩토리 메서드 패턴에서 이러한 구조를 만들어냈다.
팩토리 메서드 패턴을 적용했을 때 장단점
확장에 열려있고 변경에 닫혀있는 객체 지향 원칙을 만족하여,
인스턴스를 생성하는 로직이 담겨있는 기존 코드를 건드리지 않고 같은 종류의 새로운 인스턴스를 다른 방법으로 확장이 가능하다.
이런 방법이 가능한 이유는 Product와 Creator 간의 커플링을 느슨하게 가져갔기 때문이다.
팩토리 메서드 패턴을 적용했을 때 단점은 클래스가 늘어나는 것이다.
https://refactoring.guru/ko/design-patterns/factory-method
'프로그래밍 강의 메모 > 코딩으로 학습하는 GoF의 디자인 패턴_백기선' 카테고리의 다른 글
구조 관련 디자인 패턴 > 어댑터 패턴(Adapter Pattern) (0) | 2022.05.25 |
---|---|
객체 생성과 관련 디자인 패턴 > 프로토타입 패턴(Prototype Pattern) (0) | 2022.05.25 |
객체 생성과 관련 디자인 패턴 > 빌더 패턴(Builder Pattern) (0) | 2022.05.25 |
객체 생성과 관련 디자인 패턴 > 추상 팩토리 패턴(Abstract Factory Pattern) (0) | 2022.05.25 |
객체 생성과 관련 디자인 패턴 > 싱글톤 패턴(Singleton Pattern) (0) | 2022.05.24 |