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

0-前言

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

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

1-实现

1-1、简单UML图:

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();

运行结果:

2-应用场景简单总结

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

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

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

(0)

相关推荐

  • 设计模式:外观模式

    外观模式(Facade) 介绍:为子系统中的一组接口提供一个统一的入口.外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程 ...

  • 无废话设计模式(17)行为型模式--中介者模式

    0-前言 中介者模式定义(Mediator): 用一个中介对象来封装一系列的对象交互. 中介者对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互. 1-实现 1-1.简单UM ...

  • 无废话设计模式(16)行为型模式--备忘录模式

    0-前言 备忘录模式定义:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态. 这样以后就可以将该对象恢复到原先保存的状态. 1-实现 备忘录模式设计的初衷是用于备份状态. 但是 ...

  • 无废话设计模式(15)行为型模式--观察者模式

    0-前言 观察者模式定义:定义了一种一对多的依赖关系让多个观察者对象同事监听某一主题对象. 这个主题对象在状态发生改变时,会通知所有观察者对象,使他们能够自动更新自己: 1-实现 1-1.简单UML图 ...

  • 无废话设计模式(12)行为型模式--模板方法模式

    0-前言 模板方法模式定义:定义一个操作中的算法骨架,而将一些步骤延迟到子类中: 模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些步骤: 1-实现 1-1.简单UML图:  1-2 ...

  • 无废话设计模式(11)结构型模式--代理模式

    0-前言 代理模式定义:为其他对象提供一种代理以控制对这个对象的访问. 1-实现 1-1.简单UML图: 1-2.代码实现 //1.抽象父类 abstract class Actor { public ...

  • 无废话设计模式(9)结构型模式--享元模式

    0-前言 享元模式定义:运用共享技术有效地支持大量细粒度的对象. 1-实现 1-1.简单UML图:  1-2.代码实现 //1.抽象父类(网站父类) abstract class Website { ...

  • 每天学习一个设计模式(二):结构型之桥梁模式

    一.基本概念 桥梁模式(Bridge)是对象的结构模式.又称为柄体(Handle and Body)模式或接口(Interface)模式.桥梁模式的用意是"将抽象化(Abstraction) ...

  • 设计模式-结构型-装饰者模式

    装饰者模式(wrapper): 允许向一个现有的对象添加新的功能,同时又不改变其结构.装饰器模式是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能.使用对象的关联关系代替继承关系,更加 ...

  • 详解JAVA面向对象的设计模式 (四)、外观模式

    外观模式 Facade 外观模式内容相对简单,就不写新的例子了.本篇文章摘录自 http://c.biancheng.net/view/1369.html 外观模式的定义与特点 外观(Facade)模 ...