1. 概述
Facade Pattern是一种结构性模式。对于一个大系统里面有多个子系统,为了避免client和各个子系统进行复杂的交互,对子系统进行封装,对外提供一个统一的接口。使子系统的使用更加简单。
类图:
subsystem_x:具体的工作子系统
Facade:子系统封装
subsystem_x:具体的工作子系统
Facade:子系统封装
2.实例
客人到了餐馆点菜,餐馆提供服务的过程由厨师做菜、服务员上菜两部分组成,将这两个部分的功能进行封装,对客人提供给一个统一的接口。
代码:
输出:
来个水煮鱼
厨师做菜
翠花上菜
Facade Pattern是一种结构性模式。对于一个大系统里面有多个子系统,为了避免client和各个子系统进行复杂的交互,对子系统进行封装,对外提供一个统一的接口。使子系统的使用更加简单。
类图:
subsystem_x:具体的工作子系统
Facade:子系统封装
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;
}
输出:
来个水煮鱼
厨师做菜
翠花上菜