큰소리 디자인 모델 의 장식 모델

1944 단어
장식 모드
장식 기 모드 (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. 동적 증가 기능, 동적 취소.
주의사항: 상속 대신 가능.

좋은 웹페이지 즐겨찾기