外观模式,我的理解就是模块封装。比如要实现A类,需要BCD三个类,客户调用A类成员函数,A类调用BCD。对应客户看不到bcd,只能看到A,因此成为外观模式。这里理解为关联关系。
//复杂或多对象 class objectOne { public void operator() { cout<<"operator one "; } } class objectTwo { public void operator() { cout<<"operator two "; } } class objectThree { public void operator() { cout<<"operator three "; } } class objectFour { public void operator() { cout<<"operator four "; } } //外观实现 class Facade { objectOne one; objectTwo two; objectThree three; objectFour four; public Facade() { obj1 = new objectOne(); obj2 = new objectTwo(); obj3 = new objectThree(); obj4 = new objectFour(); } public void MethodA() { cout<<" Fun A()----- "); obj1.operator(); obj2.operator(); obj3.operator(); obj4.operator(); } public void MethodB() { cout<<" Fun B()----- "); obj4.operator(); obj3.operator(); obj2.operator(); obj1.operator(); } } //调用 void main() { Facade facade = new Facade(); facade.MethodA(); facade.MethodB(); }