CS

Gof 디자인 패턴

baek-dev 2025. 5. 13. 14:07

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

 

'CS' 카테고리의 다른 글

분산락  (0) 2025.05.15
임계구역  (0) 2025.05.14
세션  (0) 2025.05.11
쿠키  (0) 2025.05.10
매직 넘버  (0) 2025.05.09