外观模式C++实现

外观模式其实定义了一个高层接口,该接口为子系统中的一组接口提供一个一致的界面,使得这一子系统更加容易使用。(不关心底层函数的实现)

比如,一个下班回家的动作:打卡,乘坐交通工具,拿钥匙开门。

我们可以把这个下班回家封装成一个高层接口,对外隐藏下班回家过程中的子动作(打开,乘坐工具,开门)。

又比如,模块化编程中,对客户提供一个初始化接口Init(),然后该Init()接口里去做N个模块的初始化。对用户来说,Init就是一个高层接口,只要调用这个接口就可以初始化N的模块。



#include <iostream>

class SubWork1
{
public:
	void start_work()
	{
         std::cout<< "SubWork1 start work" <<std::endl;
	}
};

class SubWork2
{
public:
	void start_work()
	{
         std::cout<< "SubWork2 start work" <<std::endl;
	}
};

class SubWork3
{
public:
	void start_work()
	{
         std::cout<< "SubWork3 start work" <<std::endl;
	}
};

class Work
{
public:
	void start_work()
	{
         std::cout<< "start work" <<std::endl;

		 SubWork1 work1;
		 work1.start_work();

		 SubWork2 work2;
		 work2.start_work();

		 SubWork3 work3;
		 work3.start_work();
	}
};

int main()
{
	Work work;
	work.start_work();
	return 0;
}






外观模式的优点

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

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

3.松散耦合

外观模式松散了客户端与子系统的耦合关系,让子系统内部的模块能更容易扩展和维护,
4.易用 

 外观模式让子系统更加易用,客户端不再需要了解子系统内部的实现,也不需要跟众多子系统内部的模块进行交互,只需要跟外观交互就可以了,相当于外观类为外部客户端使用子系统提供了一站式服务。

5.更好的划分访问层次

更好的划分访问的层次。有些方法是对系统外的,有些方法是系统内部使用的。把需要暴露给外部的功能集中到外观中,这样既方便客户使用,也很好的隐藏了内部的细节。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值