使用场景:
- 1.设计之初,应该有意识的将不同的层分离,例如经典的三层架构,数据访问层,业务逻辑层,表示层;层层之间建立外观Facade。
- 2.开发阶段,子系统因为不断的重构变得十分复杂,这时候会产生许多小类,就会对外部调用产生使用上的困难,可以通过增加Facade可以提供一个简单的接口,减少依赖。
- 3.在维护一个遗留的大型系统的时候,可以在新系统开发一个外观Facade类,来提供设计粗糙或者高度复杂的遗留代码的比较清晰的简单接口,让新系统和Facade接口交互,Facade与遗留系统交互完成复杂的工作。
如图:
详情可以参考优秀的博客: