餐馆那些事之:Facade Pattern

来源:互联网 发布:知乎粉丝 编辑:程序博客网 时间:2024/05/19 00:54
1. 概述
Facade Pattern是一种结构性模式。对于一个大系统里面有多个子系统,为了避免client和各个子系统进行复杂的交互,对子系统进行封装,对外提供一个统一的接口。使子系统的使用更加简单。
类图:
subsystem_x:具体的工作子系统
Facade:子系统封装

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

2.实例
客人到了餐馆点菜,餐馆提供服务的过程由厨师做菜、服务员上菜两部分组成,将这两个部分的功能进行封装,对客人提供给一个统一的接口。
代码:
#include <iostream>#include <typeinfo>using namespace std;//subsystem_1class Cook{public:void make_food(){cout << "厨师做菜" << endl;}};//subsystem_2class Waiter{public:void provide_service(){cout << "翠花上菜" << endl;}};//facadeclass Facade{public:void make_dinner(){_cook.make_food();_waiter.provide_service();}private:Cook _cook;Waiter _waiter;};//clientint main() {Facade facade;cout << "来个水煮鱼" << endl;facade.make_dinner();return 0;}

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


原创粉丝点击