디자인 패턴
GoF 디자인 패턴
생성패턴
객체를 생성하는데 관련된 패턴
Abstract Factory Pattern (추상 팩토리)
- 구체적인 클래스에 의존하지 않고 인터페이스를 통해 서로 연관, 의존하는 객체들의 그룹으로 생성하여 추상적으로 표현
Builder Pattern (빌더)
- 작게 분리된 인스턴스를 건축하듯 조합하여 객체 생성
Factory Method Pattern (팩토리 메소드)
- 상위 클래스 - 객체 생성 인터페이스 정의
- 하위 클래스 - 인스턴스 생성
Prototype Pattern
- 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴
Singleton Pattern
- 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만 여러 프로세스가 동시에 참조할 수 없다
구조패턴
클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
Adapter Pattern
- 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴
Bridge Pattern
- 구현부에서 추상층을 분리하여 서로가 독립적으로 확장할 수 있도록 구성한 패턴
Composite Pattern
- 여러 객체를 가진 복합 객체와 단일 객체를 구분없이 다루고자 할 때 사용하는 패턴
- 객체들 간 관계를 트리구조로 구성하여 부분-전체 계층 표현
행동패턴
반복적으로 사용되는 객체들의 상호작용을 패턴화한 것
Chain of Responsibility Pattern (책임 연쇄)
- 요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴
Command Pattern
- 요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그에 남기는 패턴
Iterator Pattern
- 자료구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴
Meditator Pattern
- 수 많은 객체들 간의 복잡한 상호작용을 캡슐화하여 객체로 정의하는 패턴
- 중재자를 둠
Memento Pattern
- 특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴
Observer Pattern
- 한 객체의 상태가 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴
State Pattern
- 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴
Strategy Pattern
- 동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호 교환할 수 있게 정의하는 패턴
Interpreter Pattern
Template Method Pattern
- 상위 클래스 - 골격을 정의
- 하위 클래스 - 처리를 구체화
Factory Method와 조심
Visitor Pattern
- 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성하는 패턴
- 각 클래스를 방문함