원형 패턴
Archetype patternArectype 패턴은 로직과 구현을 구분합니다.분리는 두 개의 추상 클래스, 즉 (로직용) 장식자와 (실장용) 대리자가 존재함으로써 이루어집니다.공장에서는 데코레이터 및 위임 클래스의 매핑을 처리하고 전달된 매개 변수와 연결된 쌍을 반환합니다.인터페이스는 데코레이터, 위임자 및 호출 클래스 간의 계약으로 책임 [1]반전을 생성합니다.이 예에서는 2개의 브런치를 사용하고 있습니다만, 필요에 따라서 「N」브런치를 설정할 수 있습니다.이 패턴은 인터페이스의 1개의 브런치가 인터페이스를 실장하고 있는 한 다른 브런치 오퍼레이터가 어떻게 동작하는지에 대해 걱정할 필요가 없음을 의미합니다.
섹션
데코레이터
데코레이터 클래스의 하위 클래스는 계산 수행과 같은 로직을 처리합니다.데코레이터의 후손은 예를 들어 저장 또는 통신에 대한 책임을 전가하고 싶을 때 위임된 후손을 호출할 수 있습니다.
위임.
위임 흐름 클래스의 하위 계층은 하위 시스템, 스토리지 또는 통신 호출 구현을 처리합니다.서로 다른 자식들이 서로 완전히 다른 하위 시스템 스토리지 또는 통신을 사용할 수 있습니다.
UML
Java의 예
일반의 인터페이스 부탁한다 { 일반의 무효 송신 요구(); } 일반의 학급 Request Factory(요청 공장) { 일반의 정적인 부탁한다 getRequest(요청)(스트링 a, 스트링 b){ 데코레이터 요구 DCR = 무효; 위임 요구 dlr = 무효; 한다면 (a.동등.("A")) DCR = 신규 ADecorator 요구(); 한다면 (a.동등.('B')) DCR = 신규 BDecorator 요구(); 한다면 (b.동등.('Y')) dlr = 신규 YDelegate Request(YDelegate 요구)(); 한다면 (b.동등.('Z')) dlr = 신규 ZDelegate Request(ZDelegate 요구)(); DCR.setDelegate(dlr); 돌아가다 DCR; } } 일반의 학급 앱. { 일반의 정적인 무효 주된(스트링[] args) { 부탁한다 cr = 무효; cr = Request Factory(요청 공장).getRequest(요청)("A", 'Y'); cr.송신 요구(); cr = Request Factory(요청 공장).getRequest(요청)("A", 'Z'); cr.송신 요구(); cr = Request Factory(요청 공장).getRequest(요청)('B', 'Y'); cr.송신 요구(); cr = Request Factory(요청 공장).getRequest(요청)('B', 'Z'); cr.송신 요구(); } } 일반의 추상적인 학급 데코레이터 요구 용구 부탁한다 { 보호되고 있다 위임 요구 위임하다; 일반의 데코레이터 요구() { } 일반의 무효 setDelegate(위임 요구 위임하다) { 이것..위임하다 = 위임하다; } } 일반의 추상적인 학급 위임 요구 용구 부탁한다 { 일반의 위임 요구 () { } } 일반의 학급 ADecorator 요구 확장 데코레이터 요구 { @오버라이드 일반의 무효 송신 요구() { 시스템..나가..인쇄물("A-"); 위임하다.송신 요구(); } } 일반의 학급 BDecorator 요구 확장 데코레이터 요구 { @오버라이드 일반의 무효 송신 요구() { 시스템..나가..인쇄물("B-"); 위임하다.송신 요구(); } } 일반의 학급 YDelegate Request(YDelegate 요구) 확장 위임 요구 { @오버라이드 일반의 무효 송신 요구() { 시스템..나가..인쇄(-Y); } } 일반의 학급 ZDelegate Request(ZDelegate 요구) 확장 위임 요구 { @오버라이드 일반의 무효 송신 요구() { 시스템..나가..인쇄(-Z); } } 참가자
위임 패턴 - 특정 구현을 호출합니다.
데코레이터 패턴 - 일반화된 로직을 수행합니다.
공장 방법 패턴 - 원형 조합을 만듭니다.
레퍼런스
- ^ Basford, P: GTS, 2009.

