GoF(Gang of Four) 디자인 패턴 정리
1. 생성(Creational) 패턴
객체 생성 방식의 유연성과 캡슐화를 지원함
패턴명 | 설명 |
Singleton | 오직 하나의 인스턴스만 생성되도록 보장함 |
Factory Method | 객체 생성 로직을 서브클래스에 위임함 |
Abstract Factory | 관련 객체 집합을 생성하는 인터페이스 제공 |
Builder | 복잡한 객체 생성을 단계별로 분리함 |
Prototype | 기존 객체를 복사하여 새로운 객체를 생성함 |
2. 구조(Structural) 패턴
클래스나 객체를 조합하여 더 큰 구조를 만들기 위한 패턴
패턴명 | 설명 |
Adapter | 인터페이스가 다른 클래스를 호환되도록 연결해 줌 |
Bridge | 구현과 추상화를 분리하여 독립적으로 확장 가능하게 함 |
Composite | 트리 구조로 객체를 구성하고, 전체-부분 관계를 일관되게 다룸 |
Decorator | 기존 객체에 기능을 동적으로 추가함 |
Facade | 복잡한 시스템을 단순한 인터페이스로 감싸 줌 |
Flyweight | 동일한 객체를 공유하여 메모리 사용 최적화 |
Proxy | 다른 객체에 대한 접근을 제어함 (대리 객체) |
3. 행위(Behavioral) 패턴
객체 간의 책임, 행위 분산을 중심으로 다루는 패턴
패턴명 | 설명 |
Observer | 객체 상태 변화에 따라 구독자에게 알림을 전달함 |
Strategy | 알고리즘을 캡슐화하고 동적으로 교체 가능하게 함 |
Template Method | 알고리즘의 골격을 정의하고, 세부 처리는 하위 클래스에서 수행함 |
Command | 요청을 객체로 캡슐화하여 명령 실행을 분리함 |
Chain of Responsibility | 요청을 처리할 객체를 체인 형태로 연결함 |
State | 객체 상태에 따라 행동을 변경함 |
Iterator | 객체 컬렉션을 순차적으로 탐색함 |
Mediator | 객체 간 직접 통신을 막고 중재자를 통해 연결함 |
Memento | 객체의 이전 상태를 저장하고 복원 가능하게 함 |
Visitor | 객체 구조를 변경하지 않고 기능을 확장함 |
Interpreter | 언어나 문법을 해석하는 구조를 표현함 |
정리
- GoF 디자인 패턴은 객체 지향 설계에서 가장 널리 인정받는 23가지 패턴의 집합임
- 패턴을 통해 코드의 유연성, 재사용성, 유지보수성을 극대화할 수 있음
- 생성, 구조, 행위로 나눠서 상황에 맞는 설계 원칙을 적용하는 것이 핵심임
출처 : ChatGPT