外观模式(Facade)

1、概念
外观模式(Facade)属于结构性模式,向客户端提供了一个可以访问系统的接口,隐藏了系统的复杂性。开发中外观模式的使用相对比较多,也容易理解。
2、优缺点:
优点:  1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。4更好的划分访问层次。
缺点: 不符合开闭原则,修改相对困难,继承重写都不合适。
3、使用场景: 
  • 为复杂的模块或子系统提供外界访问的模块
  • 子系统相对独立
  • 维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。(摘自网络,很认同这个观点)
4、实例
外观模式(Facade)_第1张图片

public class System1 {
    public void func1() {
        System.out.println("系统1方法。。。");
    }
}

public class System2 {
    public void func2() {
        System.out.println("系统2方法。。。");
    }
}

public class System3 {
    public void func3() {
        System.out.println("系统:" + this.getClass());
    }
}

public class Facade {
    private System1 system1 = new System1();
    private System2 system2 = new System2();
    private System3 system3 = new System3();

    public void method1() {
        system1.func1();
    }
    public void method2() {
        system2.func2();
    }
    public void method3() {
        system3.func3();
    }
}

public class FacadeDemo {
    public static void main(String[] args) {
        Facade facade = new Facade();
        facade.method1();
        facade.method2();
        facade.method3();
    }
}


你可能感兴趣的:(设计模式,外观模式,Facade,java相关)