Work & Programming/System Design

[Creational Patterns] 특징과 사용례.

자전거통학 2024. 4. 7. 03:58

 

 

Factory Method

 ; ResolutionSolver

 ; AuthticationProvider

 ; MonsterProvider

객체 생성 주도를 외부에서 입력받는 객체에 의지하게 한다.

새로운 타입 추가 시 추가되는 타입에 대해서만 최소한의 코드가 추가된다.

 

Pool 

 ; SymbolCreator

 ; ParticleGenerator

많은 수의 프로토타입을 먼저 만들어서 풀을 만들고 그 풀안의 객체를 재사용한다.

메모리 재할당 방지. 캐시메모리 낭비 방지. 

 

Prototype

 ; HeroProvider

 ; MonsterProvider

미리특정 객체를 만들어 놓고, 생성요청이 발생하면 처음부터 다시 만드는게 아닌, 만든 객체를 복사하여 돌려준다.

 

Builder

; PizzaBuilder

; Worldbuilder

초기화 단계가 복잡하고 다양할 수 있는 객체들에 한해, 중간 객체를 두어 이 단계를 필요에 맞게 수행하도록 한다.

전담하는 클래스를 두어 관련 변화를 해당 클래스로 제한/최소화 한다.

 

Singleton 

 ; XXXManager 

 ; UtilityClass

전 프로그램 영역에 걸쳐, 1회만 객체만 필요한 object에 사용한다. 

전역으로 사용할 시 Dependency Inversion원칙이 깨지게 되므로, 주의해서 사용한다.

 

 

reference : https://refactoring.guru/design-patterns/creational-patterns