对象适配器模式
说明:当新接口出现的时候,由于和老的接口不兼容,这个时候,我们采用一个适配器类实现新的接口并在内部持有一个老业务逻辑的对象,这样就能把对老接口的调用全部中转给老的业务逻辑,从而解决接口的兼容性问题
示例代码:
package com.z1;
/**
* 原始类
*/
public class Source {
public void oldFunction() {
System.out.println("oldFunction:Source");
}
}
package com.z1;
/**
* 接口
*/
public interface Target {
// 旧接口
void oldFunction();
// 新接口
void newFunction();
}
package com.z1;
/**
* 适配器,用来做接口转换
*/
public class Adapter implements Target {
// 适配器内部持有的原始类对象
private Source mSource;
public Adapter(Source mSource) {
this.mSource = mSource;
}
@Override
public void oldFunction() {
// 这里调用原始类中的方法
mSource.oldFunction();
}
@Override
public void newFunction() {
System.out.println("newFunction:Adapter");
}
}
package com.z1;
/**
* 说明:当新接口出现的时候,由于和老的接口不兼容,这个时候,我们采用一个适配器类实现新的接口并在内部持有一个老业务逻辑的对象,
* 这样就能把对老接口的调用全部中转给老的业务逻辑,从而解决接口的兼容性问题
*/
public class A1 {
public static void main(String[] args) {
Source source = new Source();
Target target = new Adapter(source);
target.oldFunction();
target.newFunction();
}
}