适配器模式和外观模式
适配器模式定义
将一个类的接口转换成客户期望的另一个接口。适配器让原本不兼容的类可以合作无间
对象适配器
使用对象组合,以修改的接口包装被适配者,被适配者的任何子类都可以配合适配器使用
类适配器
通过多继承,使被适配者可以以客户期望的方式被调用
对象适配器是组合,类适配器是多继承(继承的优点,可以覆盖子类的行为)
装饰者和适配器的区别
装饰者的主要作用是增强类的功能,循环增强
适配器是为了转换接口,两者的核心思想不一样
适配器模式示例
外观模式定义
提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
外观模式的意图是简化接口
外观模式示例
通过Façade统一向外提供接口,将底层的细节隐藏,简化接口调用
第七章总结
1. 当需要使用一个现有的类而其接口并不符合你的需求时,就使用适配器
2.适配器改变接口以符合客户期待
3.需要简化并统一一个很大的接口或一群复杂的接口时,使用外观
4.外观将客户从复杂的子系统中解耦
5.适配器模式有两种。对象适配器使用组合,类适配器使用多继承
6.适配器将对象包装起来以改变接口;装饰者将对象包装起来以增加新的行为和责任;外观将一群对象包装起来以简化接口
最少知道原则:对象之间只需知道上下层即可。只和最亲密的朋友谈话。
就任何对象而言,在该对象的方法内,只应该调用范围内的方法:
- 该对象本身;
- 被当作方法的参数而传递入的对象
- 此方法创建或实例化的任何对象
- 对象的任何组件
OO基础
抽象、封装、多态、继承
OO原则
封装变化
多用组合、少用继承
针对接口编程、不针对实现编程
为交互对象之间的松耦合设计努力
对扩展开放,对修改关闭
依赖抽象,不依赖具体
只和亲密朋友谈话----最少知道原则
OO模式
适配器模式---将一个类的接口转换成客户期待的另一个接口。适配器让本不兼容的对象合作无间
外观模式----提供一个统一接口,用来访问子系统的一群接口,外观定义了一个高层接口,让子系统更容易使用