设计核心
- 外部系统调用另外一个系统复杂的功能的时候,不必关注其内部实现和调度,只需要通过一个封装好的调度器进行统筹调度即可
类图
- ShapeMaker 可以看做是一个外观类(调度器)他里面集合了所有的子系统中的对象,这样就可以只通过操作这个外观类而获得想要的功能,但是却没有必要关注 Shape 这个系统里面是怎么进行具体操作的
优缺点
优点:
- 减少系统相互依赖。
- 提高灵活性。
- 提高了安全性。
缺点: 不符合开闭原则,如果要改东西很麻烦,继承重写都不合适。
使用场景:
- 为复杂的模块或子系统提供外界访问的模块。
- 子系统相对独立。
- 预防低水平人员带来的风险。
注意事项: 在层次化结构中,可以使用外观模式定义系统中每一层的入口。