适配器模式:当需要实现一个新的接口InterfaceA时,为了能够复用已有的类ClassB且不对其改动,我们建立了ClassC:
public class ClassC extends ClassB implements InterfaceA
通过重载(override)接口A的方法来满足接口需要,并在方法中调用类B的已有方法进行逻辑操作。
另外如果需要实现的是一个虚类的话,由于Java无法多继承,还有一种常见方法实现适配器模式。
由于Java中存在很多虚类ClassAbstract,他们实现了某个接口,但是只提供了桩方法,没有具体实现。如果遇到这种情况需要实现适配器以复用ClassB,我们可以新建一个ClassC,然后将类B的一个实例传入C的构造函数中,使用组合的方式进行:
Public class C extends ClassAbstract{
Private final ClassB b;
Public C(ClassB b){this.b = b;}
}