큰소리 디자인 모델 의 장식 모델
장식 기 모드 (Decorator Pattern) 는 기 존의 대상 에 게 새로운 기능 을 추가 하 는 동시에 구 조 를 바 꾸 지 않 습 니 다.이런 유형의 디자인 모델 은 구조 형 모델 로 기 존의 유형의 포장 이다.
다음 코드 를 통 해 이해 하기
//
public interface Learning {
public void Learn();
}
//
public class Hero implements Learning {
String name;
public Hero (String name){
this.name=name;
}
@Override
public void Learn() {
System.out.println(name+"- ing");
}
}
//
public class QHeroDecorate implements Learning {
Hero hero ;
public QHeroDecorate (Hero hero){
this.hero = hero;
}
@Override
public void Learn() {
hero.Learn();
ReturnCity();
}
public void ReturnCity(){
System.out.println(" ");
}
}
//main
public class MainTest {
public static void main(String[] args){
Hero hero = new Hero(" ");
Learning learning = new QHeroDecorate(hero);
learning.Learn();
}
}
//
- ing
장식 패턴 의 특징
(1) 장식 대상 과 실제 대상 은 같은 인터페이스 가 있다.이렇게 하면 클 라 이언 트 대상 은 실제 대상 과 같은 방식 으로 장식 대상 과 상호작용 을 할 수 있다.(2) 장식 대상 은 실제 대상 의 인용 (reference) (3) 장식 대상 이 클 라 이언 트 로부터 모든 요청 을 받 아들 이 는 것 을 포함한다.그것 은 이 요청 들 을 실제 대상 에 게 전달 했다.(4) 장식 대상 은 이러한 요 구 를 전달 하기 전이 나 이후 에 추가 기능 을 추가 할 수 있다.이렇게 하면 운행 할 때 주어진 대상 의 구 조 를 수정 하지 않 아 도 외부 에 추가 기능 을 추가 할 수 있 도록 확보 했다.대상 을 대상 으로 하 는 디자인 에 서 는 일반적으로 계승 을 통 해 주어진 클래스 에 대한 기능 확장 을 실현 한다.
장점: 장식 류 와 피 장식 류 는 독립 적 으로 발전 할 수 있 고 서로 결합 되 지 않 으 며 장식 모델 은 계승 하 는 대체 모델 로 장식 모델 은 실현 류 의 기능 을 동적 으로 확장 할 수 있다.
단점: 다 층 장식 이 복잡 하 다.
사용 필드: 1. 하나의 기능 을 확장 합 니 다.2. 동적 증가 기능, 동적 취소.
주의사항: 상속 대신 가능.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.