标签:外观 string Fa ade Facade 子系统
10. Facade(外观)
10.1定义
要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。外观模式提供一个高层次的接口,使得子系统更易使用。
10.2 优点
■ 减少系统的相互依赖,所有的依赖都是对Façade对象的依赖,与子系统无关。
■ 提高灵活性,不管子系统内部如何变化,只要不影响Facade对象,任何活动都是自由的。
■ 提高安全性,Facade中未提供的方法,外界就无法访问,提高系统的安全性。
注意外观模式最大的缺点是不符合开闭原则,对修改关闭,对扩展开放。
10.3 场景使用
■ 为一个复杂的模块或子系统提供一个供外界访问的接口。
■ 子系统相对独立,外界对子系统的访问只要黑箱操作即可。
■ 预防风险扩散,使用Façade进行访问操作控制。
1 #include<iostream> 2 using namespace std; 3 class Airport{ 4 public: 5 void bookTicket(string from,string to){ 6 cout<<"订购了从"+ from +"到" + to + "的机票"<<endl; 7 } 8 }; 9 class Hotel{ 10 public: 11 void reserve(int days){ 12 cout<<"定了"<<days<<"天的房间"<<endl; 13 } 14 }; 15 class Chauffeur{ 16 public: 17 void drive(string to){ 18 cout<<"司机开车去"+to<<endl; 19 20 } 21 }; 22 class Secretary{ 23 public: 24 void trip(string to,int days){ 25 airport.bookTicket("上海",to); 26 chauffeur.drive("机场"); 27 hotel.reserve(days); 28 } 29 private: 30 Chauffeur chauffeur; 31 Hotel hotel; 32 Airport airport; 33 }; 34 int main(){ 35 Secretary s; 36 cout<<"老板告诉秘书出差10天"<<endl; 37 s.trip("青岛",10); 38 }
标签:外观,string,Fa,ade,Facade,子系统 来源: https://www.cnblogs.com/46cxf/p/13944170.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。