外观设计模式
2019, Sep 16
外观设计模式
外观模式(Facade Pattern,又叫门面模式)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。外观模式向现有的系统添加一个接口,来隐藏系统的复杂性。
外观模式有两个角色
门面角色
该角色没有实际的业务逻辑,此角色知晓子系统的所有功能,客户端可以调用这个角色的方法。
public class Facade {
//被委托的对象
private ClassA a = new ClassA();
private ClassB b = new ClassB();
private ClassC c = new ClassC();
// 给客户端一次性调用的方法
public void doAll() {
methodA();
methodB();
methodC();
}
//提供给外部访问的方法
private void methodA(){
this.a.doSomethingA();
}
private void methodB(){
this.b.doSomethingB();
}
private void methodC(){
this.c.doSomethingC();
}
}
子系统角色
public class ClassA {
public void doSomethingA(){
//业务逻辑
}
}
public class ClassB {
public void doSomethingB(){
//业务逻辑
}
}
public class ClassC {
public void doSomethingC(){
//业务逻辑
}
}
测试
public class Client {
public static void main(String[] args) {
// 原有的客户端调用逻辑
private ClassA a = new ClassA();
private ClassB b = new ClassB();
private ClassC c = new ClassC();
a.doSomethingA();
b.doSomethingB();
c.doSomethingC();
// 现有客户端的调用逻辑
Facade f = new Facade();
f.doAll();
}
}