餐馆那些事之:Facade Pattern

1. 概述
Facade Pattern是一种结构性模式。对于一个大系统里面有多个子系统,为了避免client和各个子系统进行复杂的交互,对子系统进行封装,对外提供一个统一的接口。使子系统的使用更加简单。
类图:
subsystem_x:具体的工作子系统
Facade:子系统封装
餐馆那些事之:Facade Pattern_第1张图片
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;
}

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


你可能感兴趣的:(餐馆那些事之:Facade Pattern)