大话设计模式----外观模式

╄→尐↘猪︶ㄣ 提交于 2020-04-05 18:15:13

一、外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统的操作更加容易。

二、代码:

public class SubSystemOne {
    public void methodOne(){
        System.out.println("子系统方法一");
    }
}

public class SubSystemTwo {
    public void methodTwo(){
        System.out.println("子系统方法二");
    }
}

public class SubSystemThree {
    public void methodThree(){
        System.out.println("子系统方法三");
    }
}

public class SubSystemFour {
    public void methodFour (){
        System.out.println("子系统方法四");
    }
}

public class Facade {
    SubSystemOne subSystemOne;
    SubSystemTwo subSystemTwo;
    SubSystemThree subSystemThree;
    SubSystemFour subSystemFour;

    public Facade(){
        subSystemOne = new SubSystemOne();
        subSystemTwo = new SubSystemTwo();
        subSystemThree = new SubSystemThree();
        subSystemFour = new SubSystemFour();
    }

    public void methodA(){
        System.out.println("========methodA=========");
        subSystemOne.methodOne();
        subSystemTwo.methodTwo();
        subSystemFour.methodFour();
    }

    public void methodB(){
        System.out.println("=========methodB=========");
        subSystemTwo.methodTwo();
        subSystemThree.methodThree();
    }
}

public class Test {
    public static void main(String[] args) {
        Facade facade = new Facade();
        facade.methodA();
        facade.methodB();
    }

    /** result
     * ========methodA=========
     * 子系统方法一
     * 子系统方法二
     * 子系统方法四
     * =========methodB=========
     * 子系统方法二
     * 子系统方法三
     */
}

三、使用场景

  1.设计初期,应该有意识的将不同的两个层分离,层与层之间建立外观Facade。

  2.在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观Facade可以提供一个简单的接口,减少它们之间的依赖。

  3.维护一个遗留的难以维护和扩展的系统时,为新系统开发一个外观Facade类,新系统通过Facade类来与老系统做交互。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!