首页 > 代码库 > 外观模式
外观模式
外观模式:
外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用
什么时候使用外观模式:
首先在设计初期阶段,应该要有意识的将不同的两个层分离
将复杂的子类系统封装到一个接口,统一进行管理,使得子类系统与用户间的耦合性大大降低
当开发大型的系统时,你可以为系统开发一个外观Facade类,来提供设计粗糙或高度复杂的遗留代码的比较清晰的接口,让系统与Facade对象交互
/* 外观模式就是将复杂的子类系统抽象到同一个的接口进行管理 ,外界只需要通过此接口与子类系统进行交互,而不必要直接与复杂的子类 系统进行交互*/#include <iostream>using namespace std;/*这里定义四个子类系统*/class SubSystemOne{public: void MethorOne() { cout<<"子系统方法一"<<endl; } };class SubSystemTwo{public: void MethorTwo() { cout<<"子系统方法二"<<endl; } };class SubSystemThree{public: void MethorThree() { cout<<"子系统方法三"<<endl; } };class SubSystemFour{public: void MethorFour() { cout<<"子系统方法四"<<endl; } };/* 外观类,接口*/class Facade{ SubSystemOne *one; SubSystemTwo *two; SubSystemThree *three; SubSystemFour *four; /*构造函数*/public: Facade() { one = new SubSystemOne(); two = new SubSystemTwo(); three = new SubSystemThree(); four = new SubSystemFour(); } void MethorA() { cout<<"方法组A()"<<endl; one->MethorOne(); two->MethorTwo(); } void MethorB() { cout<<"方法组B()"<<endl; three->MethorThree(); four->MethorFour(); } };/* 客户端调用,客户端只需要与接口Facade交互就可以访问四个子类系统了*/void main(){ Facade facade; facade.MethorA(); facade.MethorB(); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。