|
무늬
|
설명
|
|
추상 공장
|
특정 클래스를 지정하지 않고 관련 개체 집합 또는 독립 개체 집합을 만들 수 있는 인터페이스를 제공합니다.
|
|
건축업자
|
복합 객체의 생성 과정과 표현 방법을 분리함으로써 동일한 생성 과정이 다른 표현을 생성할 수 있습니다.
|
|
공장 방법
|
객체를 생성하기 위한 인터페이스를 정의하지만 서브클래스는 인스턴스를 생성할 클래스를 결정합니다. Factory 메서드 패턴에서 클래스의 인스턴스 생성은 하위 클래스로 연기됩니다.
|
|
원기
|
프로토타입의 인스턴스는 생성할 객체의 유형을 결정하는 데 사용되며 이 프로토타입을 복사하여 새로운 객체를 생성합니다.
|
|
하나씩 일어나는 것
|
Singleton 클래스의 인스턴스가 하나만 있음을 보장하고 해당 인스턴스에 액세스할 수 있는 방법을 제공합니다.
|
.
2. 구조 패턴
구조적 패턴은 클래스의 구성을 다룹니다. B. 클래스가 구성되는 방식. 구조 패턴에는 7가지 유형이 있습니다.
|
무늬
|
설명
|
|
어댑터
|
클래스의 인터페이스를 클라이언트가 기대하는 다른 인터페이스로 변환합니다. 어댑터 패턴을 사용하면 호환되지 않는 인터페이스로 인해 함께 사용할 수 없는 클래스를 함께 작동하도록 조정할 수 있습니다.
|
|
다리
|
추상화와 구현을 분리하면 둘 다 독립적으로 변경 가능합니다.
|
|
구성
|
부분-전체 계층 구조를 나타내는 트리 구조에 복합 개체를 만듭니다. 복합 패턴을 사용하면 고객이 단일 개체와 복합 개체를 동일하게 취급할 수 있습니다.
|
|
데코레이터
|
개체에 책임을 동적으로 추가할 수 있습니다. 데코레이터 패턴은 유연한 기능 확장을 위한 상속의 대안입니다.
|
|
정면
|
하위 시스템의 인터페이스 집합에 대한 균일한 인터페이스를 제공합니다. 파사드 패턴은 하위 시스템을 보다 사용자 친화적으로 만들기 위해 높은 수준의 인터페이스를 정의합니다.
|
|
플라이급
|
작은 물건이 여러 개 있는 경우 물건을 효과적으로 나누어 사용하세요.
|
|
대리
|
다른 개체에 대한 액세스를 제어하려면 다른 개체에 대리자를 제공하거나 다른 개체에 정보 보유자를 제공하십시오.
|
.
3. 행동 패턴
동작 디자인 패턴은 클래스와 개체 간의 상호 작용 및 책임 위임을 지시합니다. 행동 패턴에는 11가지 유형이 있습니다.
|
무늬
|
설명
|
|
책임의 사슬
|
의도는 하나 이상의 개체가 요청을 처리하도록 허용하여 요청 개체와 처리 개체 간의 결합을 끊는 것입니다. 요청을 해결하는 개체를 만날 때까지 개체 체인을 통해 요청을 라우팅합니다.
|
|
명령
|
객체에 요청을 캡슐화하면 요청을 저장하거나 기록하여 작업을 취소하고 다른 요청으로 클라이언트를 매개변수화할 수 있습니다.
|
|
통역사
|
언어에 따라 문법에 대한 표현식이 정의됩니다. 또한 언어의 문장을 해석하기 위해 정의한 표현을 기반으로 분석기를 정의합니다.
|
|
반복자
|
내부 표현 방법을 노출하지 않고 복합 객체의 요소에 순차적으로 액세스하는 방법을 제공합니다.
|
|
중재인
|
개체 내의 개체 간 상호 작용을 캡슐화합니다. 중재자 패턴은 개체 간의 참조 관계를 개체에서 분리하여 다양한 방식으로 상호 작용을 독립적으로 확장할 수 있습니다.
|
|
메모리
|
객체는 캡슐화를 위반하지 않고 객체의 내부 상태를 유지하므로 객체가 나중에 해당 상태로 되돌아갈 수 있습니다.
|
|
관찰자
|
개체 간의 일대다 종속성을 정의하고 한 개체의 상태가 변경되면 다른 종속 개체에 알림이 전송되고 변경 사항이 자동으로 발생합니다.
|
|
상태
|
개체의 내부 상태에 따라 동작을 변경할 수 있습니다. 이렇게 하면 개체가 클래스를 변경하는 것처럼 보입니다.
|
|
전략
|
알고리즘 계열이 있는 경우 각 알고리즘을 별도의 클래스로 캡슐화하고 상호 교환 가능하도록 정의합니다. 전략 패턴을 사용하면 클라이언트에 영향을 주지 않고 독립적으로 알고리즘을 다양하게 변경할 수 있습니다.
|
|
템플릿 방법
|
동작 중에는 알고리즘 처리만 정의되고 각 단계에서 수행할 특정 처리는 하위 클래스에 정의됩니다. 템플릿 메서드 패턴을 사용하면 하위 클래스에서 알고리즘의 처리를 변경하지 않고 알고리즘의 각 단계 처리를 재정의할 수 있습니다.
|
|
방문객
|
이 패턴은 개체 구조의 요소에서 수행할 작업을 나타냅니다. 방문자 패턴을 사용하면 작업이 처리하는 요소의 클래스를 변경하지 않고 새 작업을 정의할 수 있습니다.
|
![[JAVA #8] 9. [JAVA #8] 9.](https://cafe.fantacola.kr/wp-content/plugins/contextual-related-posts/default.png)