협업을 위한 GoF 디자인 패턴 정리
Gang.. of Four?
WIP
생성 패턴
: 객체의 생성과 관련된 패턴. 특정 개체가 생성되거나 변경되어도 프로그램 구조에 최소한의 영향을 줄 수 있도록 함 -> 구조적인 유연성을 제공
- Abstract Factory, 추상 팩토리
: 구체적인 클래스를 지정하지 않고, 인터페이스를 통해 연관되는 객체들을 묶음 - Builder, 빌더
: 객체의 생성과 표현을 분리 - Factory Method, 팩토리 메서드
: 객체의 생성을 서브클래스로 분리하여 위임 및 캡슐화 - Prototype, 프로토타입
: 프로토타입 인스턴스를 만들어두고, 이를 복사해서 사용 (객체 생성이 무거울 경우) - Singleton, 싱글톤
: 클래스마다 인스턴스(실제 객체)를 하나만 생성해두고, 이걸 참조해서 사용
구조 패턴
: 프로그램 내 자료구조나 인터페이스 구조 등을 설계하는데 사용되는 패턴. 클래스나 객체를 조합해 더 큰 구조를 만들 수 있게 해 줌
- Adapter, 어댑터
: 클래스의 인터페이스를 어떤 클래스에서도 이용할 수 있도록 변환 - Bridge, 브릿지
: 구현부에서 추상층을 분리하여 각자 독립적으로 변형하고 확장할 수 있도록 함 - Composite, 컴포지트
: 객체들의 관계를 트리 구조로 구성하여 표현함. 단일 객체와 복합 객체 구분 X - Decorator, 데코레이터
: 주어진 상황에 따라 객체에 다른 객체를 덧붙여 사용 - Facade, 파사드
: 서브시스템의 인터페이스 집합에 대해 통합된 인터페이스를 제공 - Flyweight, 플라이웨이트
: 캐싱을 활용해서, - Proxy, 프록시
:
행동 패턴
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor