设计模式(十):外观模式

135 阅读1分钟

介绍

外观模式(Facade Pattern)属于结构型模式,它隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。

优点

  • 减少系统相互依赖
  • 提高了安全性,外界对子系统的访问只要黑箱操作即可

缺点

  • 不符合开闭原则,如果要改东西很麻烦,继承重写都不合适

应用

为复杂的模块或子系统提供外界访问的模块,ContextImpl就是外观模式

实现

关键代码

在客户端和复杂系统之间再加一层代理

class eatable {
    public void eat() {
        System.out.println("eat");
    }
}

class readable {
    public void read() {
        System.out.println("read");
    }
}

class sleepable {
    public void sleep() {
        System.out.println("sleep");
    }
}

class Facade {

    eatable mA = new eatable();
    readable mB = new readable();
    sleepable mC = new sleepable();

    public void methodA() {
        mA.eat();
    }

    public void methodB() {
        mB.read();
    }

    public void methodC() {
        mC.sleep();
    }
}

class Demo10{
    public static void main(String[] args) {
        Facade facade = new Facade();
   
        facade.methodA();
        facade.methodB();
        facade.methodC(); 
     }
}
eat
read 
sleep