定义

在外观模式中有几个角色:
- 外观角色:外观角色了解子系统所有的方法,外观角色也有自己的方法,客户端通过调用外观角色的方法来调用子系统的功能。子系统可以是一个或者多个,子系统按照不同的维度分成不同的处理模块,并不是单独的类。子系统形成一个集合,为外观模式中的外观类提供子系统的服务。
- 降低客户端与与子系统之间的耦合度;
适用场景

优点

外观模式相关的模式

- 外观模式与中介者模式:外观模式关注的是外界和子系统之间的交互,而中介者模式关注的是子系统内部之间的交互;
- 外观模式与单例模式:通常可以把外观模式中的外观对象做成单例模式;
- 外观模式与抽象工厂模式:外观类可以通过抽象工厂获取子系统的实例。
Coding
引出业务场景:

**慕课网的积分系统,有几个子系统组成。对外可以通过封装一个礼物兑换的外观类把这些逻辑封装起来:1. 积分礼物; 2. **
积分礼物

积分资格校验系统

积分支付系统

物流子系统

外观模式角色:礼物兑换外观角色


客户端调用外观模式角色

外观模式优化

UML类图

网友评论