1 概述
定义:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。
子系统也可以理解为一个类或者一个模块,不管内部什么情况,都需要通过一个入口来访问。子系统并不知道门面的存在,对于子系统来说,门面就是一个特殊客户端而已。
2 优缺点
优点
减少系统的相互依赖。防止外界直接访问到子系统内部,产生强耦合关系。
提高了灵活性。依赖减少,灵活性自然提高。不管子系统内部如何变化,只要不影响门面对象都无所谓。
提高安全性。门面上不开通的方法,外部访问不到。
缺点
不符合开闭原则,修改拓展只能修改代码,对于上线的系统来说,直接改风险相当大。
3 使用场景
为一个复杂的模块或者子系统提供一个外部访问的接口
子系统相对独立,对外界访问只要黑箱操作即可。例如:利息的计算,一些复杂业务实现好。对于使用人员只需输入金额存期就可以返回结果。
预防低水平人员带来的风险扩散。为降低个人代码质量对整体的影响,个人只在自己子系统中开发,然后提供门面进行访问操作。