《디자인 모델 시 리 즈》---외관 모델

외관 모드:
시스템 의 인 터 페 이 스 를 위해 일치 하 는 인 터 페 이 스 를 제공 합 니 다.이 모델 은 고 층 인 터 페 이 스 를 정의 합 니 다.이 인 터 페 이 스 는 이 서브 시스템 을 더욱 쉽게 사용 할 수 있 습 니 다.  언제 사용 할 지:
1.디자인 초기 단계 에 의식 적 으로 서로 다른 두 층 을 분리 해 야 한다.예 를 들 어 3 층 구조.2.개발 단계 에 서브 시스템 은 끊 임 없 는 재 구성 과 진화 로 인해 점점 복잡 해 지고 외부 모델 을 증가 하면 간단 한 인 터 페 이 스 를 제공 하여 그들 간 의 의존 을 줄 일 수 있다 고 생각한다.3.남 겨 진 대형 시스템 을 유지 할 때 이 시스템 은 유지 하기 어렵 고 확장 하기 어 려 울 수 있 지만 매우 중요 한 기능 을 포함 하기 때문에 새로운 수요 개발 은 반드시 이에 의존 해 야 한다.이때 외부 모델 을 사용 하 는 것 도 매우 적합 하 다.새로운 시스템 에 외관 류 를 개발 하여 디자인 이 거 칠 거나 고도 로 복잡 한 남 겨 진 코드 의 비교적 뚜렷 하고 간단 한 인 터 페 이 스 를 제공 하여 새로운 시스템 과 facade 대상 이 상호작용 을 하고 facade 와 남 겨 진 코드 가 모든 복잡 한 작업 을 하도록 한다.
/**
 * @author stefanie zhao
 * @date 2014-8-18   02:57:46
 */
public class Facade {

    private SubSystemOne one;
    private SubSystemTwo two;
    private SubSystemThree three;
    private SubSystemFour four;

    public Facade() {
        this.one = new SubSystemOne();
        this.two = new SubSystemTwo();
        this.three = new SubSystemThree();
        this.four = new SubSystemFour();
    }

    public void methodA() {
        System.out.println("methodA()");
        one.methodOne();
        two.methodTwo();
        three.methodThree();
    }

    public void methodB() {
        System.out.println("methodB()");
        two.methodTwo();
        three.methodThree();
        four.methodFour();
    }

}
/**
 * @author stefanie zhao
 * @date 2014-8-18   02:55:41
 */
public class SubSystemOne {

    public void methodOne() {
        System.out.println("      ");
    }
}
/**
 * @author stefanie zhao
 * @date 2014-8-18   02:55:41
 */
public class SubSystemTwo {

    public void methodTwo() {
        System.out.println("      ");
    }
}
/**
 * @author stefanie zhao
 * @date 2014-8-18   02:55:41
 */
public class SubSystemThree {

    public void methodThree() {
        System.out.println("      ");
    }
}
/**
 * @author stefanie zhao
 * @date 2014-8-18   02:55:41
 */
public class SubSystemFour {

    public void methodFour() {
        System.out.println("      ");
    }
}
public class Main {

    /**
     * @Description: TODO
     * @param @param args
     * @return void
     * @throws
     */
    public static void main(String[] args) {
        Facade facade = new Facade();
        facade.methodA();
        facade.methodB();

    }

}

좋은 웹페이지 즐겨찾기