0-前言

  外观模式定义:为子系统中的一组接口提供一个一致的界面,此模式定了一个高层接口

           这一接口使得这一子系统更加容易使用;

1-实现

1-1、简单UML图:

无废话设计模式(10)结构型模式--外观模式_外观模式

 

 

1-2、代码实现

//1、子系统A(研发部)class DeptDev
{    public void DoworkD()
    {
        System.out.println("猿类们开始码代码了!");
    }    public void DoreportD()
    {
        System.out.println("研发部报告:研发任务到了XXX阶段了!");
    }

}//2、子系统B(测试部)class DeptTest
{    public void DoworkT()
    {
        System.out.println("测试人员开始干活了!");
    }    public void  DoreportT()
    {
        System.out.println("测试部报告:测试完成XXX部分!");
    }
}//3、外观类(研发总监)class  DeptFacade
{
    DeptDev deptDev;
    DeptTest deptTest;    public DeptFacade()
    {
        deptDev = new DeptDev();
        deptTest = new DeptTest();
    }    public void MakeDowork()
    {
        System.out.println("总监发话了:大家开始干活:------------");
        deptDev.DoworkD();
        deptTest.DoworkT();
    }    public void GetReport()
    {
        System.out.println("总监发话了:大家汇报工作情况:------------");
        deptTest.DoreportT();
        deptDev.DoreportD();
    }
}

 

客户端:

        DeptFacade deptFacade =new DeptFacade();
        deptFacade.MakeDowork();
        deptFacade.GetReport();

 

运行结果:

无废话设计模式(10)结构型模式--外观模式_结构型模式_02

 

 

2-应用场景简单总结

1、当需要为一个复杂的子系统提供一个简单的接口时;

2、当客户端与抽象类的实现部分之间存在着很大的依赖性时;

3、当需要构建一个层次结构的子系统时;