티스토리 뷰
4-1. 팩토리 메서드 패턴 (Factory Method Pattern)
Jason of the Argos 2023. 9. 1. 20:361. 팩토리 메서드 패턴이란?
팩토리 메서드 패턴에서는 객체를 생성하기 위한 인터체이스를 정의한다.
어떤 클래스의 인스턴스를 만들지는 어느 서브클래스에서 결정하게 만든다.
팩토리 메서드 패턴을 이요하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기는 것이다.
-> 구체적으로 어떤 것 (객체의 생성)을 만들지는 서브 클래스가 정한다.

구성요소
1) Product
- 팩토리 메서드가 생성할 객체의 인터페이스를 정의한다.
2) Creator
- 팩토리 메서드를 정의하고, 이 팩토리 메서드는 Product 타입의 객체를 리턴한다.
- 구현은 ConcreteCreator에서 하지만, 디폴트 팩토리 메서드를 구현할 수도 있다.
3) ConcreteProduct
- Product 인터페이스를 구현한다.
4) ConcreteCreator
- Creator에 정의된 팩토리 메서드를 override하여 구현한다.
기본이 되는 디자인 원칙
1) OCP
2. 동기
객체 생성을 미루고 싶을 때 사용한다.
- 클래스가 어떤 어떤 객체를 생성해야될지 모를 때
- 클래스가 자신의 서브클래스에게 세부 객체 생성 작업을 넘기고 싶을 때
장점
1) 객체 생성 부분이 분리된다.
2) 서브 클래스가 사용할 수 있는 "hook" 이 생긴다.
- Creator 클래스에 있는 팩토리 메서드 -> createProduct() 를 오버라이드 해서 커스터마이징 된 행동을 할 수 있다.
- 즉, 부모클래스의 구현을 변경하지 않고 공통적인 인터페이스를 지키면서 자신의 프로세스만 변경할 수 있는 것을 hook이라고 한다.
단점
1) 클래스가 늘어나면서 구조적 복잡도가 늘어난다.
2) 서브클래스에 대한 의존성이 생긴다.
- 만약 Product 클래스에 변경이 생기면 팩토리 메서드가 들어있는 Creator에서 또 변경이 필요할 수 있다.
3. 개인적인 포인트
1) 일하면서 많이 봐온 패턴. (BeanFactory..)
'Computer Science > 디자인 패턴' 카테고리의 다른 글
5. 싱글턴 패턴 (Singleton Pattern) (0) | 2023.09.10 |
---|---|
4-2. 추상 팩토리 패턴 (Abstract Factory Pattern) (0) | 2023.09.01 |
3. 데코레이터 패턴 (Decorator Pattern) (1) | 2023.08.29 |
2. 옵저버 패턴 (Observer Pattern) (0) | 2023.08.19 |
1. 스트래티지 패턴 (Strategy Pattern) (0) | 2023.08.11 |
- Total
- Today
- Yesterday
- nginx 내부
- 프로그래밍 모델
- WORE
- 코테
- 카카오코테
- Java #JIT #JVM
- jvm
- 모던 자바 인 액션
- 2020 KAKAO
- zipkin
- 신규 아이디 추천
- 카카오 코테
- Kakao Blind
- spring cloud sleuth
- WORA
- 스프링
- 2019 Kakao Blind
- Java #GC #가비지콜렉터 #Garbage Collector
- behavior parameterization
- okhttp3
- 2021
- Spring
- IOC
- KAKAO 2021
- PatternSyntaxException
- decorator
- Java
- 디자인패턴
- 카카오
- 카카오 인턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |