`

设计模式学习篇-Facade门面模式

 
阅读更多

Facade门面模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战

为子系统中的一组接口提供一个统一简单高层接口,这个接口使得这一子系统更加容易实用。

相当于对子模板进行适配。

 

 门面模式是对象的结构模式。门面模式没有一个一般化的类图描述,下图演示了一个门面模式的示意性对象图:

 

 

 

在这个对象图中,出现了两个角色:

门面(Facade)角色:客户端可以调用这个角色的方法。此角色知晓相关的(一个或者多个)子系统的功能和责任。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去。

子系统(subsystem)角色:可以同时有一个或者多个子系统。每一个子系统都不是一个单独的类,而是一个类的集合。每一个子系统都可以被客户端直接调用,或者被门面角色调用。子系统并不知道门面的存在,对于子系统而言,门面仅仅是另外一个客户端而已。

 

- 隐藏具体的实现细节,简化调用关系。
- 使得调用方的代码更加简洁明了。
- 通过facade,降低外部调用类与内部被调用类间的耦合程度。
- 可以为每个不同的任务需要,准备经过良好设计的简易的API。

 

适用性

  1.为一个复杂子系统提供一个简单接口。

 

  2.提高子系统的独立性。

 

  3.在层次化结构中,可以使用Facade模式定义系统中每一层的入口。


 

 

 

 

  • 大小: 5.5 KB
分享到:
评论

相关推荐

    base-facade.zip

    "base-facade.zip"这个压缩包文件的名称暗示了其内容可能与软件设计模式中的“基类门面”(Base Facade)有关。在软件工程中,门面模式是一种结构型设计模式,它提供了一个统一的接口,用来简化一个复杂的系统或者子...

    设计模式之门面模式(Facade模式)

    设计模式之门面模式(Facade模式),介绍门面模式,实际例子分析,代码讲解等

    迪米特法则---门面Facade模式.docx

    门面(Facade)模式是一种设计模式,遵循迪米特法则,旨在简化子系统的使用,减少客户端与子系统之间的复杂依赖关系。迪米特法则主张一个对象应该尽量减少与其他对象的交互,只与直接的朋友交流,以此提高系统的内聚...

    08-Facade.rar

    门面(Facade)设计模式是一种结构型设计模式,它的主要目的是提供一个统一的接口,用来访问子系统中的多个接口,使子系统更加容易被使用。这个模式简化了客户端与复杂系统之间的交互,使得客户端无需了解子系统内部...

    23种设计模式--门面模式

    门面模式(Facade Pattern)是软件工程中一种常用的设计模式,属于结构型模式。它为一个复杂的子系统提供了一个统一的接口,使得客户端可以更容易地使用这个子系统,而无需了解其内部的具体实现细节。在实际开发中,...

    设计模式C++学习之门面模式(Facade)

    门面模式(Facade)是设计模式中的一种结构型模式,它的主要目的是为了解决复杂的系统接口问题,提供一个简单的统一接口,使得客户端可以更方便地使用系统。在C++编程中,门面模式的应用尤为常见,它能有效地降低...

    C++设计模式课件14_Facade_门面模式.pdf

    ### C++设计模式之门面模式(Facade Pattern) #### 一、门面模式概述 在软件工程领域,设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易...

    设计模式 之 “门面模式[Facade Pattern]”

    门面模式(Facade Pattern)是软件工程中一种常用的结构型设计模式,它的主要目的是提供一个统一的接口,用来简化系统中一组复杂的接口或类的使用。这个模式将复杂的子系统接口封装在一个简单的门面对象中,使得...

    设计模式之Facade

    eclipse工程文件 包含代码 有助理解 门面(Facade)模式 <br>外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行,这就是门面模式。 <br>医院的例子 <br>用一个例子进行说明,如果把医院...

    JAVA设计模式-设计模式公司出品

    设计模式公司出品的《JAVA设计模式》书籍,详细介绍了多种设计模式,适合不同水平的程序员学习和使用。 首先,我们来了解什么是设计模式。设计模式是软件开发过程中遇到的某一类问题的典型解决方案。它们通常被分为...

    设计模式学习笔记总结

    这里我们聚焦于C#语言中的设计模式学习笔记,涵盖了多种经典的设计模式,如合成模式、桥梁模式、装饰模式、享元模式、门面模式、命令模式、工厂方法、策略模式、代理模式以及状态模式。下面将对这些模式逐一进行详细...

    设计模式之门面模式

    门面模式(Facade Pattern)是软件工程中一种常用的设计模式,属于结构型模式。它提供了一个统一的接口,用来访问子系统中的一群接口。门面模式使得子系统的使用更为简单,同时也隐藏了子系统的复杂性,使得客户端...

    facade门面模式

    门面模式(Facade Pattern)是一种结构型设计模式,它的主要目的是为复杂的子系统提供一个统一且简单的接口,使得客户端能够更方便地与这些子系统交互,而无需了解子系统的内部实现细节。这种模式降低了客户端与子...

    免费电子书《深入浅出设计模式》PDF版.rar

    《深入浅出设计模式》这本书籍正是深入剖析了这些设计模式的精髓,为程序员们提供了一个详尽的学习资料。通过PDF版的免费电子书,无论是编程新手还是资深开发者都能从中获取宝贵的知识。 在《深入浅出设计模式》中...

    您的设计模式.pdf。

    本书《您的设计模式》对设计模式进行了详细的讲解,涵盖了策略模式、代理模式、单例模式、多例模式、工厂方法模式、抽象工厂模式、门面模式、适配器模式、模板方法模式、建造者模式、桥梁模式、命令模式、装饰模式、...

    结构型模式之门面模式(Facade)

    门面模式(Facade)是软件设计模式中的一种结构型模式,它的主要目的是为了解耦复杂的系统,通过提供一个简单的统一接口来屏蔽子系统的复杂性,使得客户端与子系统的交互变得更加简单和直观。在大型软件系统中,往往...

    java设计模式学习笔记

    ### Java设计模式学习笔记——外观模式(Facade Pattern) #### 概述 设计模式是软件工程领域中一种解决常见问题的可复用解决方案。在Java开发过程中,掌握设计模式能够帮助开发者更好地组织代码结构,提高代码的...

    设计模式(C++)-超值-不下白不下

    GoF设计模式包括了如适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、装饰模式(Decorator)、门面模式(Facade)、享元模式(Flyweight)、职责链模式(Chain of Responsibility)、命令模式...

    api-facade:Roll20 API脚本外观

    在软件工程中,API门面是一种设计模式,它提供了一个简单的统一接口,用于与复杂或多个API交互。在本案例中,“api-facade”是一个针对Roll20 API的Scala.js实现,旨在简化与Roll20平台的集成。Roll20是一个在线虚拟...

    JavaScript设计模式.pdf

    JavaScript设计模式.pdf JavaScript设计模式是指在软件开发中使用JavaScript语言编写的设计模式。这些设计模式旨在提高代码的重用性、可读性、维护性和扩展性。以下是JavaScript设计模式的知识点总结: 1. 单体...

Global site tag (gtag.js) - Google Analytics