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

门面模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的门面对象进行,为子系统中的一组接口提供一个一致的界面,门面模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。门面模式又称为外观模式,它是一种对象结构型模式。

.1结构型模式之门面(Facade)模式"/
Facade fa;
fa.wrapOpration();
	
return 0;
class Facade
{

public:
	Facade();
	virtual ~Facade();

	void wrapOpration();

private:
	SystemC *m_SystemC;
	SystemA *m_SystemA;
	SystemB *m_SystemB;
};
Facade::Facade(){
	m_SystemA  = new SystemA();
	m_SystemB = new SystemB();
	m_SystemC = new SystemC();
}



Facade::~Facade(){
	delete m_SystemA;
	delete m_SystemB;
	delete m_SystemC;
}

void Facade::wrapOpration(){
	m_SystemA->operationA();
	m_SystemB->operationB();
	m_SystemC->opeartionC();
}

外观模式主要优点在于对客户屏蔽子系统组件,减少了客户处理的对象数目并使得子系统使用起来更加容易,它实现了子系统与客户之间的松耦合关系,并降低了大型软件系统中的编译依赖性,简化了系统在不同平台之间的移植过程;其缺点在于不能很好地限制客户使用子系统类,而且在不引入抽象外观类的情况下,增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开闭原则”。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/basic/pattern/7306.html

(0)
上一篇 2021年8月1日 13:10
下一篇 2021年8月2日 02:18

相关推荐

  • 2.5创建型模式之单例(Singleton)模式

    对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。 一个更好的解决办法是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例被创建,并且它可以提供一个访问该实例的方法…

    设计模式 2021年6月5日
    0770
  • 2.4创建型模式之控制反转(Inversion of Control)模式

    控制反转(Inversion of Control,缩写为IoC),是由Martin Fowler于2004年提出的面向对象编程中的一种设计模式思想,可以用来减低计算机代码之间的耦合度。其中最常见的实现方式叫做依赖注入(Dependency Injection,简称DI),还有一种实现方式叫依赖查找(Dependenc…

    设计模式 2021年6月4日
    01920
  • 1.面向对象中类之间的六种关系(UML类图)

    UML指(Unified Modeling Language,统一建模语言)。 车的类图结构为<<abstract>>,表示车是一个抽象类; 它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示; 小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空…

    设计模式 2021年5月1日
    01990

发表评论

登录后才能评论