[⚡] 디자인 패턴 유형
1. 생성 (생빌 프로 팩앱싱)
- 빌더(builder)
: 복잡한 인스턴스를 조합하여 만드는 구조, 생성과 표기를 분리해서 복잡한 객체를 생성
- 프로토타입(prototype)
: 생성할 객체의 종류를 명시하는데 원형에 되는 예시물을 이요하고 새로운 객체를 이 원형들ㄹ을 복사함으로써 생성하는 타입.
- 팩토리 메소드(Factory method)
: 객체를 생성하는 인터페이스를 정의하지만, 인스턴스를 만드는 클래스는 서브클래스에서 결정하도록 하는 패턴.
- 앱스트랙트 팩토리(Abstract Factory)
: 구체적인 클래스 지정하지 않고 관련성이 있거나 독립적인 객체들을 생성하기 위한 인터페이스 제공
- 싱글톤(Single ton)
: 클래스의 인스턴스가 하나임을 보장하고 접근할 수 있는 전역적인 접근점을 제공하는 패턴
2. 구조 (구 브데 프록 퍼플 컴 어)
- 브릿지(bridge)
: 추상계층을 분리하여 추상화된 부분과 실제 구현부분을 독립적으로 확장할 수 있는 디자인 패턴
- 데코레이터(decorator)
: 객체의 결합을 통해 기능을 동적으로 유연하게 확장
- 프록시(proxy)
: 특정 객체로의 접근을 제어하기 위한 용도
- 퍼사이드(facade)
: 복잡한 시스템에 대하여 단순한 인터페이스 제공, 통합된 인터페이스 제공
- 플라이웨이트(flyweight)
: 여러개의 '가상 인스턴스'를 제공하여 메모리 절감
- 컴포지트(composite)
: 복합 객체와 단일 객체를 동일하게 취급
- 어댑터(adapter)
: 기존 생성 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할을 하는 인터페이스
3. 행위 (행 미인이 템옵 스테 비커 스트 메체)
- 메디에이터(mediator)
: 상호작용의 유연한 변경을 지원, 객체지향의 목표를 달성하게 해줌
- 인터프리터(interpreter)
: 주어진 언어에 대해서 문법을 위한 표현 수단을 정의, 언어 해석기
- 이터레이터(Iterator)
: 내부 표현부를 노출하지 않고 어떤 객체 집합의 원소를 순차적으로 접근할 수 있는 방법 제공
- 템플릿(template)
: 객체의 연산에서 알고리즘의 뼈대만 정의하고, 나머지는 서브클래스에서 이루어지게 하는 패턴
- 옵져버(Observer)
: 객체들 사이에 1:N의 의존관계를 정의하여, 의존 관계의 객체들이 통지받지 않고 자동으로 갱신됨
- 스테이트(state)
: 객체의 내부 상태가 변경될 때 행동을 변경하도록 허락.
- 비지터(visitor)
: 객체구조를 이루는 원소에 대해 수행할 연산을 표현함.
- 커맨드(command)
: 요청을 객체로 캡슐화하여 서로 다은 사용자의 매개변수화, 요청 저장 또는 로깅, 연산의 취로를 지원하게 만드는 패턴
- 스트레티지(strategy)
: 동일한 계열의 알고리즘들을 정의하고 각각 캡슐화하여 이들을 상호교환하게 만듬.
- 메멘토(memento)
: 객체를 이전 상태로 복구시켜야하는 경우.
- 체인 오브 리스판서빌리티(chain of responsibility)
: 요청을 처리하는 기회를 하나 이상의 객체에 부여하여 요청을 보내는 쪽과 받는 쪽의 결합을 피하는 패턴.