外观模式【门面模式】(结构型)

定义:
定义了一个高层、统一的接口,他隐藏了系统的复杂性,外部与通过这个统一的接口对子系统中的一群接口进行访问。
客户端通过一个外观类的接口来对系统中的部件进行组合调用,从而隐藏整个系统功能具体实现流程。当我们进行修改的时候只需要修改子系统类,调整外观类即可。
两个角色
外观角色:外观角色包含着一个或多个子系统功能,并将这些功能封装起来只对外部提供一个接口。
子系统角色:可以有一个或多个,包含着不同的处理方式。

// 三种子系统角色
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 开始工作

你可能感兴趣的:(外观模式【门面模式】(结构型))