外观模式
外观模式(Facade Pattern):为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
适用场景
子系统越来越复杂,增加外观模式提供简单的接口调用。
构建多层系统,利用外观对象作为每层的入口,简化层间调用。
优点
简化调用过程,无需深入了解子系统,防止带来风险。
减少系统依赖,松散耦合。
更好的划分访问层次
符合迪米特法则,即最少知道原则
缺点
增加子系统、扩展子系统容易引入风险。
不符合开闭原则。
接下来,我们引入一个应用场景,然后结合代码来学习外观模式。 在我们实际生活中,例如使用信用卡,会获得相应的积分,每一定量的积分, 就可以在积分商城里面进行兑换。那这样一种应用场景里面,会进行如下的子系统区分。
积分资格校验子系统
支付子系统
物流子系统
Golang Demo
Java Demo
定义积分礼物
积分资格校验
积分扣减系统,支付系统
物流服务子系统
应用层不关心,子系统,应用层只和外观类进行通信。这里要注意。
UML

补充另一个版本的Java/Scala Demo 以及源码解析
Java Demo_
Scala Demo
UML_
源码解析
Last updated
Was this helpful?