要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。外观模式提供一个高层次的接口,使得子系统更易使用。
■ 减少系统的相互依赖,所有的依赖都是对Fa?ade对象的依赖,与子系统无关。
■ 提高灵活性,不管子系统内部如何变化,只要不影响Facade对象,任何活动都是自由的。
■ 提高安全性,Facade中未提供的方法,外界就无法访问,提高系统的安全性。
注意外观模式最大的缺点是不符合开闭原则,对修改关闭,对扩展开放。
■ 为一个复杂的模块或子系统提供一个供外界访问的接口。
■ 子系统相对独立,外界对子系统的访问只要黑箱操作即可。
■ 预防风险扩散,使用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 }
原文:https://www.cnblogs.com/46cxf/p/13944170.html