感想
这里主要有2种适配器模式:
- 类适配器模式
- 对象适配器模式
适配器模式:将一个类的接口转换成另一种接口,让原本接口不兼容的类可以兼容。
以下例子引用了ai-exception在csdn上面的例子:适配器模式之类适配器与对象适配器的区别及代码实现
类适配器模式
类适配器模式:通过多重继承目标接口和被适配者类方法来实现适配。
多重继承,其中继承的目标接口部分达到适配目的,而继承被适配者类的部分达到通过调用被适配者里面的方法来实现目标接口的功能。
1 | // 已存在的、具有特殊功能、但不符合我们既有的标准接口的类 |
虽然Java不支持多重继承,但是使用接口的方式能实现类似多重继承的功能。
对象适配器模式
不使用多继承或继承的方式,而是使用直接关联,或者称为委托的方式。
1 | // 适配器类,直接关联被适配类,同时实现标准接口 |
对象适配器和类适配器使用了不同的方法实现适配,对象适配器使用组合,类适配器使用了继承。
实际开发中,使用对象适配器模式较多。