1、门面模式(Facade Pattern)也叫外观模式,是一种比较常用的封装模式,其定义如下:Provide a unified interface to a set of interfaces in a subsystem.Facade defines a higher-level interface that makes the subsystem easier to use(要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,门面模式提供一个高层级的借口,使得子系统更便于使用。)
2、门面模式的角色
一、Facade-门面角色
客户端可以调用这个角色的方法,此角色知晓子系统的所有功能和职责。一般情况下,本角色会将所有从客户端发出的请求委派到相应的子系统去,也就是说该角色没有实际的业务逻辑,只是一个委托类。
二、subsystem-子系统角色
可以同时有一个或者多个子系统,每一个子系统都不是一个单独的类,而是一个类的聚合。子系统并不知道门面的存在,对于子系统而言,门面仅仅是另外一个客户端而已。
3、门面模式的优点
一、减少系统的相互依赖。
如果我们不使用门面模式,外界访问可以直接深入到子系统内部,相互之间是一种强耦合关系。这样的强依赖是系统设计所不能够接受的。门面模式的出现就很好的解决了这个问题,所有依赖都是对门面对象的依赖,与子系统无关。
二、提高了灵活性。
依赖减少了,灵活自然就提高了。不管子系统内部如何变化,只要不影响到门面对象,任你自由活动。
三、提高安全性
想让你访问子系统的那些业务就开通那些逻辑。不在门面上面开通方法,你休想访问到。
4、门面模式最大的缺点就是不符合开闭原则。对修改关闭,对扩展开发。一旦系统投产后发现一个小错误,就要修改门面角色的代码,这个风险太大。这个需要在设计的时候慎之又慎,多思考几遍才会有好收获。
分享到:
相关推荐
在提供的资源“第17课_设计模式之门面模式.avi”中,可能包含了对门面模式的详细讲解和实例演示,可以帮助你更深入地理解和掌握这一设计模式。通过观看视频,你将有机会看到如何在实际代码中应用门面模式,以及如何...
门面(Facade)模式是一种设计模式,遵循迪米特法则,旨在简化子系统的使用,减少客户端与子系统之间的复杂依赖关系。迪米特法则主张一个对象应该尽量减少与其他对象的交互,只与直接的朋友交流,以此提高系统的内聚...
设计模式源于建筑领域的理论,由Erich Gamma等人将其引入到计算机科学中,至今已知的有23种经典设计模式,主要分为三类:创建型、结构型和行为型。 1. 创建型设计模式: 创建型模式关注对象的创建过程,它们提供了...
门面(Facade)模式是一种设计模式,它在软件工程中被广泛使用,目的是为了提供一个更简单、更统一的接口来访问复杂的子系统。通过门面模式,客户端(调用者)无需直接与子系统中的多个组件交互,而是只需要与门面...
门面模式(Facade Pattern)是软件工程中一种常用的设计模式,属于结构型模式。它提供了一个统一的接口,用来访问子系统中的一群接口。门面模式使得子系统的使用更为简单,同时也隐藏了子系统的复杂性,使得客户端...
c++设计模式-结构型模式-外观模式;qt工程;c++简单源码; 外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,...
17. **组合模式(Composite)**:将对象组合成树形结构以表示“部分-整体”的层次结构。Android的`ViewGroup`和`View`结构体现了组合模式。 18. **模版方法模式(Template Method)**:定义一个操作中的算法骨架,而将...
门面模式(Facade Pattern)是一种结构型设计模式,它的主要目的是提供一个统一的接口,用来访问子系统中的一组接口。这个接口使得子系统更容易使用,同时也减少了客户端代码与子系统之间的耦合。门面模式通常用于...
门面模式(Facade Pattern)是一种设计模式,属于结构型模式,它的主要目的是为了解耦复杂的系统,提供一个统一的入口,使得外部客户端可以更简单、更方便地与系统交互,而无需关注系统的内部实现细节。在门面模式中...
门面模式(Facade Pattern)是23种GoF设计模式之一,它为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 #### 二、门面模式的基本介绍 ##### 定义 门面...
门面模式(Facade)是设计模式中的一种结构型模式,它的主要目的是为了解决复杂的系统接口问题,提供一个简单的统一接口,使得客户端可以更方便地使用系统。在C++编程中,门面模式的应用尤为常见,它能有效地降低...
13. **门面模式(Façade)**:与外观模式相似,但更强调简化对子系统的访问,隐藏子系统的复杂性。 14. **职责链模式(Chain of Responsibility)**:将请求的发送者和接收者解耦,多个对象都有可能处理一个请求,...
C++设计模式原理与实战视频课 1-1 课程介绍 1-2 导论UML和设计模式导论 2-1 简单工厂方法的定义场景与实现-针对接口编程的设计思想剖析 ...3-2 门面(外观)模式Facade的定义、场景与实用工程技术:LOD
在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式 1. 外观模式定义: ...
门面模式(Facade Pattern)是软件工程中一种常用的结构型设计模式,它的主要目的是提供一个统一的接口,用来简化系统中一组复杂的接口或类的使用。这个模式将复杂的子系统接口封装在一个简单的门面对象中,使得...
门面模式(Facade Pattern)是一种设计模式,它在软件工程中扮演着简化复杂系统接口的角色。门面模式的核心思想是为一个复杂的子系统提供一个单一、简洁的接口,使得客户端可以更容易地理解和使用该子系统,而无需...
门面模式(Facade Pattern)是软件工程中一种结构型设计模式,它提供了一个统一的接口,用来访问子系统中的一组接口。这个统一的接口使得客户端不必了解子系统内部的复杂性,只需要与门面进行交互即可。门面模式简化...
什么是门面模式(Facade) 外部与一个子系统的通信必须通过一个统一的门面对象进行。这就是门面模式。 门面模式的结构 涉及两个角色: 门面角色:客户端可以调用这个角色的方法。此角色知道子系统的功能和责任。在...
门面模式(Facade Pattern)是设计模式中的一种结构型模式,它的主要目的是为了解决复杂的系统接口提供一个简单易用的统一入口。在Java中,门面模式的应用可以帮助我们更好地组织代码,降低系统的耦合度,提高代码的...