门面模式,是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使得子系统更容易使用。
在实际的工程实例中应该如下:
当系统由一个的单体应用随着业务发展逐步发展成一个负责的业务集群的时候,比如说订单系统可能有单纯的订单系统发展成:订单系统、异常订单系统、订单物流系统、订单商品系统、订单流程、第三方订单以及流水等等子系统
优势:
1、系统的高内聚、服务的低耦合,我们在谈到软件设计的时候,追求的目标就是高内聚低耦合,由门面模式这种设计模式可以较为简单地实现系统的高内聚低耦合的特性
2、提供门面模式,系统的第三方移植性较好,业务的增长或者子系统的增加,对于用户、第三方均是透明的,他们只需要关注暴露的接口,极大提升了可移植性可拓展性
缺点:
不符合开闭原则,对修改关闭,对扩展开放。同一个接口,可能对用户透明,但是我们还是会更改内部逻辑
解决方案可以引入版本号,做兼容处理