外观模式:提供了一个统一的接口用来访问子系统的一群接口。外观定义了一个高层接口,让子系统更容易使用
特点:
- 将一个或多个类的复杂的一切隐藏在背后,只露出一个干净美好的外观
- 通过提供一个有着更合理接口的外观类,将复杂的子系统变得容易操作
- 外观只是提供了一些简化的操作,没有把子系统的高级操作隔离起来,依然将子系统完整的暴露出来,因此也可以访问子系统的接口
- 外观并没有实现新的行为,只是将子系统的操作合理的组合
- 一个子系统可以有多个外观,并可以创造分层次的外观
优点:
- 外观不只简化了接口,也将用户从复杂的子系统中解耦出来
外观vs适配器:
- 外观的目的是简化接口,适配器的目的是转换接口
“最少知识”原则:不要让太多的类耦合在一起以至于修改系统中的一部分会影响到其他部分
我们可以调用的方法:
- 该对象本身
- 被当作方法参数传进来
- 此方法中所创建的对象实例
- 对象的任何组件