1.作用
将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
Adapter模式会对现有的类进行适配,生成新的类。通过该模式可以很方便地创建我们需要的方法群。
2.类图
1.类适配器模式的类图(使用继承)
2.对象适配器模式类图(使用委派)
Target: 目标类,定义用户所需要的方法。
Adaptee: 被适配器者类。需要使用适配器类将其转换成用户可使用的类。
Adapter:: 适配器类,用在目标和被适配器者之间。使用Adaptee角色的方法类满足Target角色的需求,这是Adapter模式的目的,也是Adapter角色的作用。
3.简单实现
3.1 类适配器模式的类图(使用继承)
3.1.1 Banner类,相当于Adaptee
3.1.2 Print接口,相当于Target
3.1.3 PrintBanner类,相当于Adapter
3.1.4 测试类
运行结果:
3.2 对象适配器模式类图(使用委派)
当Target不是接口而是类,由于类的单继承性所以Adapter继承Target时没办法同时继承Adaptee类,所有使用这里的委派。其实就是将被适配者Adaptee的对象包含在适配器Adapter中。
3.2.1 Banner类,相当于Adaptee
3.2.2 Print抽象类,相当于Target
3.2.3 PrintBanner类,相当于Adapter
3.2.4 测试类
运行结果:
参考:《图解设计模式》