外观模式c++

外观模式提供了一种统一的接口,用于多个子系统的协调工作,降低了客户端与子系统间的耦合。在医院看病的例子中,接待员扮演外观角色,隐藏了复杂的流程细节。这种模式的优点在于易于使用和管理,但修改或扩展时可能会带来不便。代码示例展示了如何通过Work类整合Sub_Work1到Sub_Work4的工作流程。
摘要由CSDN通过智能技术生成

外观模式的定义:为子系统中的一组接口(相当与上面的模块)提供一个一致的界面。此模式定义了一个高层接口,这个结口使得这一子系统更加easy使用。说白了就是:我们仅仅需调用高层的函数接口。而不用关心高层内部调用是怎样组合底层方法的。更不用关心底层函数是怎样实现的。

应用实例:去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便。

优点:1、实现了子系统与客户端之间的松耦合关系。减少系统相互依赖、提高灵活性、提高了安全性。

2、客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。

缺点:不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。

#include<iostream>
using namespace std;


class Sub_Work1//子工作1
{
public:
	void Working1()
	{
		cout<<"Doing Sub-Work1..."<<endl;
	}
};

class Sub_Work2//子工作2
{
public:
	void Working2()
	{
		cout<<"Doing Sub-Work2..."<<endl;
	}
};

class Sub_Work3//子工作3
{
public:
	void Working3()
	{
		cout<<"Doing Sub-Work3..."<<endl;
	}
};

class Sub_Work4//子工作4
{
public:
	void Working4()
	{
		cout<<"Doing Sub-Work4..."<<endl;
	}
};
class Work//总工作,客户与之打交道
{
private:
	Sub_Work1 w1;
	Sub_Work2 w2;
	Sub_Work3 w3;
	Sub_Work4 w4;
public:
	void Work1()//总工作1
	{
		w1.Working1();
		w3.Working3();
	}
	void Work2()//总工作2
	{
		w2.Working2();
		w3.Working3();
		w4.Working4();
	}
};


int main()//client程序
{
	Work w;
	/*******总工作1******/
	cout<<"開始调用总工作1"<<endl;
	w.Work1();

	/*******总工作2******/
	cout<<endl<<"開始调用总工作2"<<endl;
	w.Work2();
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gxy_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值