外观模式应该是程序员最下意识用的一种模式,比如我们习惯性的对复杂系统做一个封装接口。外观模式其本质是对一堆复杂对象和应用的接口抽象,对它们进行封装隔离,对于调用者来说只需要关系接口的实现,而不需要知道内部有哪些对象和调用。
作用
为模块的一组接口提供一致的界面,定义了一个高层接口,这个接口使得这一模块更加容易使用。
类视图
实现
//复杂或多对象class objectOne{
public void operator() {
cout<<"operator onen";
}
}
class objectTwo{
public void operator() {
cout<<"operator twon";
}
}
class objectThree{
public void operator() {
cout<<"operator threen";
}
}
class objectFour{
public void operator() {
cout<<"operator fourn";
}
}
//外观实现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()-----n");
obj1.operator();
obj2.operator();
obj3.operator();
obj4.operator();
}
public void MethodB() {
cout<<" Fun B()-----n");
obj4.operator();
obj3.operator();
obj2.operator();
obj1.operator();
}
}
//调用void main() {
Facade facade = new Facade();
facade.MethodA();
facade.MethodB();
}
应用场景
- 构建上下层次的模块时,如果上下进行调用,则会出现强耦合,用外观模式实现上下级模块的接口,简化相互调用的交叉,降低上下层的耦合度;
- 在多个复杂模块相互协作工作时,向上用外观类提炼出高层接口,对外隐藏其内部的实现并隔离变化;
- 对单独模块或者对复杂模块的封装,提炼出外观类进行封装访问,解耦合。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- C++设计模式之策略模式(Strategy)
- C++设计模式之模板方法模式(TemplateMethod)
- C++设计模式之观察者模式(Observer)
- C++设计模式之迭代器模式(Iterator)
- C++设计模式之适配器模式(Adapter)
- C++设计模式之建造者模式(Builder)
- C++设计模式之装饰模式(Decorator)
- C++设计模式之代理模式(Proxy)
- C++和java设计模式之单例模式
- C++设计模式之享元模式(Flyweight)