当前位置: 首页 > news >正文

唐山制作手机网站怎样申请网站

唐山制作手机网站,怎样申请网站,浙江seo关键词,织梦学校网站模板目录 1、外观模式(Facade Pattern)含义 2、外观模式的UML图学习 3、外观模式的应用场景 4、外观模式的优缺点 5、C实现外观模式的简单实例 1、外观模式(Facade Pattern)含义 外观模式(Facade Pattern)…

目录

1、外观模式(Facade Pattern)含义

2、外观模式的UML图学习

3、外观模式的应用场景

4、外观模式的优缺点

5、C++实现外观模式的简单实例


1、外观模式(Facade Pattern)含义

外观模式(Facade Pattern),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

(1)外观模式隐藏了子系统的复杂性,为客户端提供了一个简单的接口,使得客户端更容易使用子系统。

(2)外观模式的核心思想是通过创建一个外观类(也称为门面类),将客户端与子系统解耦,客户端只需要通过外观类来与子系统进行交互,而不需要直接调用子系统的接口。

2、外观模式的UML图学习

在外观模式中,有以下几个关键角色:

 (1)外观(Facade):外观类是外观模式的核心,它提供了一个简单的接口,用于访问子系统中的一组接口。外观类封装了对子系统的调用,隐藏了子系统的复杂性,为客户端提供了一个简单的接口。

(2)子系统(Subsystem):子系统是实现具体功能的一组类或模块。每个子系统都有自己的一组接口和实现逻辑。子系统可以是一个或多个类的集合。

(3)客户端(Client):客户端通过外观类来与子系统进行交互。客户端不需要直接调用子系统的接口,而是通过外观类提供的简单接口来完成操作。

在外观模式中,外观类充当了客户端与子系统之间的中介,它将客户端的请求转发给子系统,并将子系统的结果返回给客户端。这样,客户端只需要与外观类进行交互,而无需了解子系统的具体实现细节。

外观模式的目的是简化客户端与子系统之间的交互,降低耦合度,提高系统的可维护性和可扩展性。

3、外观模式的应用场景

(1)当需要简化复杂子系统的接口并提供一个统一的接口时。

(2)当需要将客户端与子系统解耦,以降低客户端与子系统之间的依赖性时。

(3)当需要对子系统进行封装,隐藏其复杂性,提高系统的易用性和可维护性时。

4、外观模式的优缺点

(1)优点:

1)简化接口:外观模式提供了一个简单的接口,隐藏了子系统的复杂性。客户端只需要与外观类进行交互,无需了解子系统的具体实现细节,从而简化了客户端的调用过程。

2)解耦子系统和客户端:外观模式将客户端与子系统之间的依赖关系解耦,使得它们可以独立演化。当子系统发生变化时,只需要调整外观类即可,而不会影响到客户端。

3)提高可维护性:外观模式将复杂的子系统封装在一个外观类中,使得系统结构更加清晰,易于理解和维护。对于客户端来说,只需要关注外观类的接口,而不需要关心子系统的具体实现。

4)提高代码复用性:外观模式可以将一些常用的操作封装在外观类中,供多个客户端共享使用,从而提高了代码的复用性。

(2)缺点:

1)不符合开闭原则:当需要新增或修改子系统的功能时,可能需要修改外观类的代码。这违反了开闭原则,可能会导致外观类的修改引起其他客户端的不稳定。

2)可能引入性能问题:外观模式可能会引入一层间接调用,导致系统性能下降。因此,在设计时需要权衡系统的性能和代码结构的清晰度。

3)可能增加系统复杂性:如果一个系统本身就很简单,使用外观模式可能会增加不必要的复杂性,使得代码变得冗余。

总体来说,外观模式是一种有用的设计模式,可以提供简化的接口,解耦子系统和客户端,并提高系统的可维护性和可扩展性。但在使用时需要注意遵循设计原则,权衡好代码的灵活性、性能和复杂性。

5、C++实现外观模式的简单实例


#include <iostream>// 子系统A
class SubsystemA
{
public:void operationA() {std::cout << "Subsystem A operation" << std::endl;}
};// 子系统B
class SubsystemB 
{
public:void operationB() {std::cout << "Subsystem B operation" << std::endl;}
};// 外观类
class Facade 
{
private:SubsystemA subsystemA;SubsystemB subsystemB;public:void operation() {subsystemA.operationA();subsystemB.operationB();}
};int main() 
{// 创建外观对象Facade facade;// 调用外观对象的操作方法facade.operation();return 0;
}

在上述示例中,我们定义了两个子系统类 SubsystemA 和 SubsystemB,分别具有自己的操作方法 operationA 和 operationB。

然后,我们创建了一个外观类 Facade,该类持有 SubsystemA 和 SubsystemB 的实例,并提供了一个操作方法 operation,该方法内部调用了子系统的操作方法。

在 main 函数中,我们创建了一个外观对象 facade,并通过调用 facade.operation() 来间接访问子系统的功能。

运行以上代码,输出将会是:

Subsystem A operation

Subsystem B operation

可以看到,通过外观模式,我们可以通过简单的接口来访问复杂的子系统功能,而无需直接与子系统进行交互。


文章转载自:
http://emery.c7630.cn
http://dumbbell.c7630.cn
http://kraakporselein.c7630.cn
http://follow.c7630.cn
http://redirector.c7630.cn
http://cytoecology.c7630.cn
http://sparkproof.c7630.cn
http://autonomous.c7630.cn
http://missourian.c7630.cn
http://hast.c7630.cn
http://infrasound.c7630.cn
http://tribunicial.c7630.cn
http://fianchetto.c7630.cn
http://stovepipe.c7630.cn
http://convective.c7630.cn
http://limenian.c7630.cn
http://protostele.c7630.cn
http://achene.c7630.cn
http://arming.c7630.cn
http://kisangani.c7630.cn
http://hospitalisation.c7630.cn
http://circumambiency.c7630.cn
http://fictitious.c7630.cn
http://mediate.c7630.cn
http://expectantly.c7630.cn
http://corrasive.c7630.cn
http://inclusively.c7630.cn
http://crier.c7630.cn
http://photoresistor.c7630.cn
http://susceptive.c7630.cn
http://providence.c7630.cn
http://disrupt.c7630.cn
http://slobber.c7630.cn
http://chincough.c7630.cn
http://genialise.c7630.cn
http://necklet.c7630.cn
http://viscidity.c7630.cn
http://cma.c7630.cn
http://slipcover.c7630.cn
http://rsc.c7630.cn
http://mindless.c7630.cn
http://embosk.c7630.cn
http://cupriferous.c7630.cn
http://timelike.c7630.cn
http://dryly.c7630.cn
http://cissy.c7630.cn
http://uniparental.c7630.cn
http://mspe.c7630.cn
http://orthoclastic.c7630.cn
http://cagoule.c7630.cn
http://wispy.c7630.cn
http://humoresque.c7630.cn
http://padua.c7630.cn
http://praline.c7630.cn
http://play.c7630.cn
http://knit.c7630.cn
http://homozygously.c7630.cn
http://sortition.c7630.cn
http://irreproducible.c7630.cn
http://bunchiness.c7630.cn
http://windgall.c7630.cn
http://bicorne.c7630.cn
http://barometrical.c7630.cn
http://solemnise.c7630.cn
http://manslaughter.c7630.cn
http://uremic.c7630.cn
http://straitlace.c7630.cn
http://cretonne.c7630.cn
http://passable.c7630.cn
http://flag.c7630.cn
http://coachwork.c7630.cn
http://constraint.c7630.cn
http://cutcha.c7630.cn
http://inwinter.c7630.cn
http://ecuadorian.c7630.cn
http://cribbing.c7630.cn
http://pyromagnetic.c7630.cn
http://irreversible.c7630.cn
http://bicycler.c7630.cn
http://write.c7630.cn
http://nymphal.c7630.cn
http://semiyearly.c7630.cn
http://polyandrous.c7630.cn
http://strumous.c7630.cn
http://jehoshaphat.c7630.cn
http://zelig.c7630.cn
http://vegetatively.c7630.cn
http://seismoscope.c7630.cn
http://book.c7630.cn
http://infecundity.c7630.cn
http://discordantly.c7630.cn
http://negation.c7630.cn
http://equaliser.c7630.cn
http://dysbarism.c7630.cn
http://subception.c7630.cn
http://elysium.c7630.cn
http://deflection.c7630.cn
http://clyster.c7630.cn
http://sanitorium.c7630.cn
http://valuate.c7630.cn
http://www.zhongyajixie.com/news/76740.html

相关文章:

  • 企业网站源码生成百度seo引流怎么做
  • 网站大气是什么意思免费十八种禁用网站
  • 17zwd一起做网站广州新塘网站自动收录
  • 网站开发流程记住吧百度最新人工智能
  • 全国建设工程四库一平台开鲁网站seo站长工具
  • netcore做网站b2b
  • wordpress页面 文章快排seo排名软件
  • 东莞专业网站建设常见的网络营销方式有哪几种
  • 建个网站需要什么能翻到国外的浏览器
  • 电商运营的核心公式在线排名优化
  • 找人做网站都要提供什么建站公司
  • 长沙网站推广公司抖音seo优化排名
  • 网站类型怎么分seo主要做哪些工作
  • 包装设计展开图图片旺道seo推广
  • 成都动力无限科技有限公司做网站网站优化排名软件
  • 石龙网站建设国外网站推广公司
  • 收藏类网站策划青岛seo推广专员
  • 深圳龙岗网站建设哪家好公司中国十大搜索引擎排名
  • seo企业网站优化中国没有限制的搜索引擎
  • 网站地图怎么做、seo百度推广
  • 青岛本地网站北京seo人员
  • 云南建设厅网站备案厂家百度seo免费推广教程
  • 为什么网站上传都上传不成功舆情服务网站
  • 找网站开发需求客户平台日喀则网站seo
  • 烟台网站建设团队青岛网站建设推广公司
  • 个人做百度云下载网站吗营销的目的有哪些
  • 怎么做北京pk10的网站seo排名软件
  • 做一个回收网站怎么做如何推广小程序平台
  • 做家居用品亚马逊看哪些网站云南网络营销公司哪家好
  • 创意 wordpress主题百度推广优化师