디자인 모드 - 장식 모드 (7)

8310 단어 디자인 모드
간단 한 소개
하나의 방법 을 실현 할 때 일부 기능 을 추가 로 추가 하 는 것 은 대리 모델 의 공사 와 같 고 마지막 에 이들 의 차이 주요 모듈 을 설명 할 것 이다.
추상 부재
구체 적 인 구조물
추상 장식
구체 적 인 장식
예시
추상 부재
//  
public interface EatAble {
    //     
    void eat();
}

구체 부재
//    
public class House implements EatAble {
    @Override
    public void eat() {
        System.out.println("  。。。。");
    }
}

추상 적 인 장식
//      
public class Decorator implements EatAble {

    private EatAble eatAble;

    public Decorator(EatAble eatAble) {
        this.eatAble = eatAble;
    }

    @Override
    public void eat() {
        eatAble.eat();
    }
}

구체 적 인 장식
//      
public class Outer extends Decorator {

    public Outer(EatAble eatAble) {
        super(eatAble);
    }

    @Override
    public void eat() {
        super.eat();
        pay();
    }
    
    //       
    private void pay() {
        System.out.println("  。。。。。");
    }
    
}

테스트
public class Main {
    public static void main(String[] args) {
        EatAble house = new House();
        house.eat();
        System.out.println("===========================");
        EatAble outer = new Outer(new House());
        outer.eat();
//          。。。。
//===========================
//          。。。。
//          。。。。。
    }
}

프 록 시 모드 와 의 차이
① 관심 사 는 다르다. 대리 모델 은 방문 권한 을 주목 하고 장식 모델 이 주목 하 는 증가 기능 ② 호출 자 는 장식 모델 을 실현 하 는 유형 을 감지 할 수 있다. 대리 모델 은 감지 되 지 않 는 다. 다시 말 하면 대리 모델 은 도대체 어떤 유형 이 완 성 된 대리 인지 모 르 고 장식 모델 은 이런 유형 을 ③ 집행 할 때 대리 모델 은 조합 을 사용한다.(원래 의 대상 을 속성 으로 저장 하고 원래 의 대상 방법 을 집행 한 다음 에 대리 대상 의 추가 방법 을 집행 한다) 장식 모델 은 집적 (슈퍼 의 원래 대상 방법 을 먼저 호출 하고 장식 대상 을 호출 하 는 추가 방법) ④ 장식 모델 의 차원 이 더욱 뚜렷 하고 집적 할 수 없 는 유형 에 하나의 집적 체인 을 형성 할 수 있 으 며 다 형 을 사용 할 수 있다.

좋은 웹페이지 즐겨찾기