外观模式,我的理解就是模块封装。比如要实现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();
}