适配器模式
适配器模式的结构:
- 客户端使用的Target类需要使用一个已经存在的接口Adaptee类,可以用两种方法实现:
- 构造Adapter类继承Target类,并实现Adaptee接口(适配器模式的类版本)
- 将一个Adaptee实例作为Adapter的组成部分(适配器模式的对象版本)
类版本结构: 对象版本: 适配器模式的参与者:
- Target
定义Client使用的与特定领域相关的接口
- Client
与符合Target接口的对象协同
- Adaptee
定义一个已经存在的接口,这个接口需要适配
- Adapter
对Adaptee的接口与Target接口进行适配 使用例题: 分别利用类版本和对象版本的适配器模式模拟实现ps2接口和usb接口的转换。 我们手中有个ps2插头的设备,但是主机上只有usb插头的接口,实现一个适配器将ps2接口转换为usb接口。其中,ps2接口表示为: class Ps2{ virtual void isPs2(); } Usb接口表示为: class Usb{ Virtual void isusb(); }。 对象版本的代码:
1 |
|
对应的UML类图: