[DesignPattern] 디자인 패턴의 분류

디자인 패턴의 분류


많은 디자인 패턴을 크게 범주별로 분리를 할 수 있다.

범주별로 분리를 해보면서 패턴의 특징을 쉽게 파악할 수 있다.



1. 생성, 행동, 구조 관련 패턴으로 분류


- 생성 관련 패턴 (Creational Pattern) : 객체 인스턴스 생성을 위한 패턴으로, 클라이언트와 그 클라이언트에서 생성해야 할 객체 인스턴스 사이의 연결을 끊어주는 패턴


싱글턴, 팩토리 메소드, 추상 팩토리, 프로토타입, 빌더 패턴


- 행동 관련 패턴 (Behavioral Pattern) : 클래스와 객체들이 상호작용하는 방법 및 역할을 분담하는 방법과 관련된 패턴


스트래티지, 옵저버, 스테이트, 커맨드, 이터레이터, 템플릿 메소드, 인터프리터, 미디에이터, 역할 변경, 메멘토, 비지터


- 구조 관련 패턴 (Structural Pattern) : 클래스 및 객체들을 구성을 통해서 더 큰 구조로 만들 수 있게 해 주는 것과 관련된 패턴


데코레이터, 어댑터, 컴포지트, 퍼사드, 프록시, 브리지, 플라이웨이트



2. 클래스, 객체 패턴으로 분류


- 클래스 패턴 (Class Pattern) : 클래스 사이의 관계가 상속을 통해서 어떤 식으로 정의되는지를 다룬다. 클래스 패턴은 컴파일시에 관계가 결정된다.


템플릿 메소드, 팩토리 메소드, 어댑터, 인터프리터


- 객체 패턴 (Object Patterns) : 객체 사이의 관계를 다루며, 객체 사이의 관계는 보통 구성을 통해서 정의된다. 객체 패턴에서는 일반적으로 실행 중에 관계가 생성되기 때문에 더 동적이고 유연하다.


스트래티지, 옵저버, 데코레이터, 프록시, 컴포지트, 이터레이터, 스테이트, 추상 팩토리, 싱글턴, 비지터, 메멘토, 역할 사슬, 브리지, 미디에이터, 플라이웨이트, 프로토타입, 빌더