Façade是一个法语词,意思是外观、门面,因此该模式又称为外观模式!
门面模式不仅仅是一种设计模式那么简单,更是一种设计素养,需要有边界划分的意识!
为子系统中的一组接口提供一个一致(稳定)的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)。 ——《设计模式》GoF
#include <iostream> using namespace std; class SubSystemOne { public: void MethodOne() { cout << "SubSystemOne" << endl; } }; class SubSystemTwo { public: void MethodTwo() { cout << "SubSystemTwo" << endl; } }; class SubSystemThree { public: void MethodThree() { cout << "SubSystemThree" << endl; } }; class SubSystemFour { public: void MethodFour() { cout << "SubSystemFour" << endl; } }; class Facade { private: SubSystemOne s1; SubSystemTwo s2; SubSystemThree s3; SubSystemFour s4; public: void MethodA() // 方法组合 { s1.MethodOne(); s3.MethodThree(); } void MethodB() // 方法组合 { s2.MethodTwo(); s3.MethodThree(); s4.MethodFour(); } }; int main() { Facade f; f.MethodA(); // SubSystemOne // SubSystemThree cout << endl; f.MethodB(); // SubSystemTwo // SubSystemThree // SubSystemFour return 0; }
分三个阶段:
原文:https://www.cnblogs.com/wkfvawl/p/12775985.html