원형 패턴

Archetype pattern

Arectype 패턴은 로직과 구현을 구분합니다.분리는 두 개의 추상 클래스, 즉 (로직용) 장식자와 (실장용) 대리자가 존재함으로써 이루어집니다.공장에서는 데코레이터 및 위임 클래스의 매핑을 처리하고 전달된 매개 변수와 연결된 쌍을 반환합니다.인터페이스는 데코레이터, 위임자 및 호출 클래스 간의 계약으로 책임 [1]반전을 생성합니다.이 예에서는 2개의 브런치를 사용하고 있습니다만, 필요에 따라서 「N」브런치를 설정할 수 있습니다.이 패턴은 인터페이스의 1개의 브런치가 인터페이스를 실장하고 있는 한 다른 브런치 오퍼레이터가 어떻게 동작하는지에 대해 걱정할 필요가 없음을 의미합니다.

섹션

데코레이터
데코레이터 클래스의 하위 클래스는 계산 수행과 같은 로직을 처리합니다.데코레이터의 후손은 예를 들어 저장 또는 통신에 대한 책임을 전가하고 싶을 때 위임된 후손을 호출할 수 있습니다.

위임.
위임 흐름 클래스의 하위 계층은 하위 시스템, 스토리지 또는 통신 호출 구현을 처리합니다.서로 다른 자식들이 서로 완전히 다른 하위 시스템 스토리지 또는 통신을 사용할 수 있습니다.

UML

ClassModel.jpg

Send Request.jpg

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);     } } 

참가자

위임 패턴 - 특정 구현을 호출합니다.

데코레이터 패턴 - 일반화된 로직을 수행합니다.

공장 방법 패턴 - 원형 조합을 만듭니다.

레퍼런스

  1. ^ Basford, P: GTS, 2009.

「 」를 참조해 주세요.