介绍
外观模式(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