1.适配器模式的定义
适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。
我的理解:其实问题就是,如何使两个不发生依赖的类A,B;A能调用到B中的方法。
解决方法就是构建一个适配器,适配器从类B中获得方法,A从适配器中取想要的方法。
适配器模式主要有:类适配器模式、对象适配器模式
2.类适配器模式
类适配器模式(Adapter)包含以下主要角色
目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。
适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。
适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。
以下以手机充电为例:
手机充电需要5V的电压,电源提供220V的电压,手机需要一个适配器才能充上电。
适配器的作用就是将220V转为5V,首先适配器继承电源的源方法(输出220V),这样它可以得到输出220V的方法,然后实现接口中的目的方法(输出5V)。这样手机就能直接使用适配器中的输出5V的方法。
3.对象适配器模式
根据“合成复用原则”,在系统中尽量使用关联关系来替代继承关系。
对象适配器模式(Adapter)包含以下主要角色。
目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。
适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。
适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。
我的理解:不做父子做朋友
参考:
尚硅谷-图解Java设计模式(韩顺平)
适配器模式(Adapter模式)详解
如有错误,欢迎指正