餐馆那些事之:Facade Pattern

1. 概述
Facade Pattern是一种结构性模式。对于一个大系统里面有多个子系统,为了避免client和各个子系统进行复杂的交互,对子系统进行封装,对外提供一个统一的接口。使子系统的使用更加简单。
类图:
subsystem_x:具体的工作子系统
Facade:子系统封装

subsystem_x:具体的工作子系统
Facade:子系统封装

2.实例
客人到了餐馆点菜,餐馆提供服务的过程由厨师做菜、服务员上菜两部分组成,将这两个部分的功能进行封装,对客人提供给一个统一的接口。
代码:
#include <iostream>
#include <typeinfo>
using namespace std;

//subsystem_1
class Cook
{
public:
	void make_food()
	{
		cout << "厨师做菜" << endl;
	}
};

//subsystem_2
class Waiter
{
public:
	void provide_service()
	{
		cout << "翠花上菜" << endl;
	}
};

//facade
class Facade
{
public:
	void make_dinner()
	{
		_cook.make_food();
		_waiter.provide_service();
	}
private:
	Cook _cook;
	Waiter _waiter;
};

//client
int main() 
{
	Facade facade;
	
	cout << "来个水煮鱼" << endl;	
	facade.make_dinner();
	
	return 0;
}

输出:
来个水煮鱼
厨师做菜
翠花上菜


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值