定义:
定义了一个高层、统一的接口,他隐藏了系统的复杂性,外部与通过这个统一的接口对子系统中的一群接口进行访问。
客户端通过一个外观类的接口来对系统中的部件进行组合调用,从而隐藏整个系统功能具体实现流程。当我们进行修改的时候只需要修改子系统类,调整外观类即可。
两个角色
外观角色:外观角色包含着一个或多个子系统功能,并将这些功能封装起来只对外部提供一个接口。
子系统角色:可以有一个或多个,包含着不同的处理方式。
// 三种子系统角色
public class SystemA
{
public void func(){
System.out.println("系统 A 开始工作");
}
}
public class SystemB
{
public void func(){
System.out.println("系统 B 开始工作");
}
}
public class SystemC
{
public void func(){
System.out.println("系统 C 开始工作");
}
}
----------------------------------------------------------------------------------
// 外观角色
public class Facade
{
private SystemA systemA;
private SystemB systemB;
private SystemC systemC;
public Facade(){
systemA = new SystemA();
systemB = new SystemB();
systemC = new SystemC();
}
public void func(){
systemA.func();
systemB.func();
systemC.func();
}
}
// 客户端
public class Client
{
public static void main(String[] args){
Facade facade = new Facade();
facade.func();
}
}
Output:
系统 A 开始工作
系统 B 开始工作
系统 C 开始工作
网友评论