//迪米特法则: 也叫最少知识原则。如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。
//如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。//前提: 在类的结构设计上,每一个类都应当尽量降低成员的访问权限。//根本思想: 强调了类之间的松耦合。
//8.外观模式//ver1//股票1class Stock1{public: void Buy(){} void Sell(){}};//股票2class Stock2{public: void Buy(){} void Sell(){}};//国债1class NationalDebt1{public: void Buy(){} void Sell(){}};//房地产1class Realty1{public: void Buy(){} void Sell(){}};//基金类class Fund{private: Stock1 *ps1; Stock2 *ps2; NationalDebt1 *pnd1; Realty1 *prt1;public: Fund() { ps1 = new Stock1(); ps2 = new Stock2(); pnd1 = new NationalDebt1(); prt1 = new Realty1(); } //方法A void MethodA() { ps1->Buy(); ps2->Buy(); } //方法B void MethodB() { pnd1->Buy(); prt1->Buy(); }};void main1(){ Fund *pjj = new Fund(); //外观类需要了解所有的子系统的方法或属性,进行组合,以备外界调用。 pjj->MethodA(); pjj->MethodB();}
//外观模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
//何时使用外观模式:
//1.在设计初期阶段,应该要有意识的将不同的两个层分离。//2.在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂。//增加外观类可以提供一个简单的接口,减少他们之间的依赖。