适配器模型
适配器
- 客户通过目标接口调用适配器的方法对适配器发出请求
- 适配器使用被适配者接口把请求转换成被适配者的一个或多个调用接口
- 客户接收到调用的结果,但并未察觉这一切是适配器在起转换作用
- 可以将改变的部分封装起来
- 以修改的接口包装被适配者的优点:被适配者的任何子类,都可以搭配着适配器使用
- 对象适配器和类适配器
适配器和装饰者
- 适配器:将一个接口转成另外一个接口
- 装饰者:不改变接口,加入责任
- 适配器:采用组合的方式,将客户期望的目标接口委托给组合的对象执行
- 装饰者:通过继承使得装饰者和被装饰者拥有同种类型
外观模式
- 简化接口的同时,依旧将系统完整的功能暴露出来
- 将客户从子系统解耦
适配器和外观模式
- 适配器的意图:“改变”接口符合客户的期望
- 外观模式的意图:提供子系统的一个简化接口
最少知识原则
就任何对象而言,在该对象的方法内,我们只应该调用属于以下返回的方法:
- 该对象本身
- 被当作方法的参数而传递进来的对象
- 此方法所创建或实例化的任何对象
- 对象的任何组件
总结
- 原则:最少知识原则;
- 适配器模式:将一个类的接口,转换成客户期望另一个接口,适配器让原本不兼容的累可以合作无间;
- 外观模式:提供了一个统一的接口,用来访问子系统中的一群接口,外雇那定义一个高层接口,让子系统更容易使用。