[디자인패턴] GoF 생성 패턴,


5 스폰 패턴 + 7가지 구조 패턴 + 11가지 행동 패턴 = 23개의 GoF

.

1. 창조의 패턴

제너레이티브 디자인 패턴은 개체가 클래스로 구성되는 방식과 관련이 있습니다. 제너레이티브 디자인 패턴은 개체 생성 프로세스를 프로그래밍 방식으로 캡슐화하는 가장 좋은 방법에 대한 강력한 제안을 제공합니다. 다섯 가지 유형의 생성 패턴이 있습니다.

무늬
설명
추상 공장
특정 클래스를 지정하지 않고 관련 개체 집합 또는 독립 개체 집합을 만들 수 있는 인터페이스를 제공합니다.
건축업자
복합 객체의 생성 과정과 표현 방법을 분리함으로써 동일한 생성 과정이 다른 표현을 생성할 수 있습니다.
공장 방법
객체를 생성하기 위한 인터페이스를 정의하지만 서브클래스는 인스턴스를 생성할 클래스를 결정합니다. Factory 메서드 패턴에서 클래스의 인스턴스 생성은 하위 클래스로 연기됩니다.
원기
프로토타입의 인스턴스는 생성할 객체의 유형을 결정하는 데 사용되며 이 프로토타입을 복사하여 새로운 객체를 생성합니다.
하나씩 일어나는 것
Singleton 클래스의 인스턴스가 하나만 있음을 보장하고 해당 인스턴스에 액세스할 수 있는 방법을 제공합니다.

.

2. 구조 패턴

구조적 패턴은 클래스의 구성을 다룹니다. B. 클래스가 구성되는 방식. 구조 패턴에는 7가지 유형이 있습니다.

무늬
설명
어댑터
클래스의 인터페이스를 클라이언트가 기대하는 다른 인터페이스로 변환합니다. 어댑터 패턴을 사용하면 호환되지 않는 인터페이스로 인해 함께 사용할 수 없는 클래스를 함께 작동하도록 조정할 수 있습니다.
다리
추상화와 구현을 분리하면 둘 다 독립적으로 변경 가능합니다.
구성
부분-전체 계층 구조를 나타내는 트리 구조에 복합 개체를 만듭니다. 복합 패턴을 사용하면 고객이 단일 개체와 복합 개체를 동일하게 취급할 수 있습니다.
데코레이터
개체에 책임을 동적으로 추가할 수 있습니다. 데코레이터 패턴은 유연한 기능 확장을 위한 상속의 대안입니다.
정면
하위 시스템의 인터페이스 집합에 대한 균일한 인터페이스를 제공합니다. 파사드 패턴은 하위 시스템을 보다 사용자 친화적으로 만들기 위해 높은 수준의 인터페이스를 정의합니다.
플라이급
작은 물건이 여러 개 있는 경우 물건을 효과적으로 나누어 사용하세요.
대리
다른 개체에 대한 액세스를 제어하려면 다른 개체에 대리자를 제공하거나 다른 개체에 정보 보유자를 제공하십시오.

.

3. 행동 패턴

동작 디자인 패턴은 클래스와 개체 간의 상호 작용 및 책임 위임을 지시합니다. 행동 패턴에는 11가지 유형이 있습니다.

무늬
설명
책임의 사슬
의도는 하나 이상의 개체가 요청을 처리하도록 허용하여 요청 개체와 처리 개체 간의 결합을 끊는 것입니다. 요청을 해결하는 개체를 만날 때까지 개체 체인을 통해 요청을 라우팅합니다.
명령
객체에 요청을 캡슐화하면 요청을 저장하거나 기록하여 작업을 취소하고 다른 요청으로 클라이언트를 매개변수화할 수 있습니다.
통역사
언어에 따라 문법에 대한 표현식이 정의됩니다. 또한 언어의 문장을 해석하기 위해 정의한 표현을 기반으로 분석기를 정의합니다.
반복자
내부 표현 방법을 노출하지 않고 복합 객체의 요소에 순차적으로 액세스하는 방법을 제공합니다.
중재인
개체 내의 개체 간 상호 작용을 캡슐화합니다. 중재자 패턴은 개체 간의 참조 관계를 개체에서 분리하여 다양한 방식으로 상호 작용을 독립적으로 확장할 수 있습니다.
메모리
객체는 캡슐화를 위반하지 않고 객체의 내부 상태를 유지하므로 객체가 나중에 해당 상태로 되돌아갈 수 있습니다.
관찰자
개체 간의 일대다 종속성을 정의하고 한 개체의 상태가 변경되면 다른 종속 개체에 알림이 전송되고 변경 사항이 자동으로 발생합니다.
상태
개체의 내부 상태에 따라 동작을 변경할 수 있습니다. 이렇게 하면 개체가 클래스를 변경하는 것처럼 보입니다.
전략
알고리즘 계열이 있는 경우 각 알고리즘을 별도의 클래스로 캡슐화하고 상호 교환 가능하도록 정의합니다. 전략 패턴을 사용하면 클라이언트에 영향을 주지 않고 독립적으로 알고리즘을 다양하게 변경할 수 있습니다.
템플릿 방법
동작 중에는 알고리즘 처리만 정의되고 각 단계에서 수행할 특정 처리는 하위 클래스에 정의됩니다. 템플릿 메서드 패턴을 사용하면 하위 클래스에서 알고리즘의 처리를 변경하지 않고 알고리즘의 각 단계 처리를 재정의할 수 있습니다.
방문객
이 패턴은 개체 구조의 요소에서 수행할 작업을 나타냅니다. 방문자 패턴을 사용하면 작업이 처리하는 요소의 클래스를 변경하지 않고 새 작업을 정의할 수 있습니다.