外观模式
1. 环境
- 电脑的组成你了解么?
- 你了解电脑的启动过程吗?
- 请设计一个电脑类。其中包含电脑的开启和关闭方法。
2. 背景
用户希望使用一个比较复杂的子系统。但是用户不希望跟子系统的复杂的模块交互,也不想了解复杂的子系统内部的结构,且子系统结构变化后,不需要改变用户的使用方式。
3. 详解
3.1. Facade
- 为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
- 使客户尽量少的与子系统内部的组件打交道,尽量维护子系统的统一的接口。
- 使系统的用户和系统通过façade类解耦。当子系统改变时,只要保证façade类的接口不变,用户的使用方式就无需改变。
- 外观模式的实现一般采用:在子系统外部封装façade类的方式实现。
3.2. 角色
- 目标类: 子系统类的合集。
- 外观类: 一个相对复杂的子系统类的外观类。
- 客户端类: 要使用子系统类中各个方法的用户类。
