适配器模式:客户端调用某一个类型 Adapter,该类型只有operationTwo(),但是客户端现在希望调用这个类型的同时,也要执行另一个类型 Source 的operationOne(),这时候我们就要使用“适配器模式”。
解决方案为:我们抽象一个接口Target,该接口拥有operationOne()与operationTwo(),将Adapter这个类型继承Source 类型,实现接口Target。
核心思想就是:通过抽象接口,满足客户端的期待,从而使不同接口类可以一起工作。
具体代码如下:
package com.mkf.pattern;
public class Source {
public void operationOne() {
System.out.println("源被调用: " + Source.class.getName());
}
}
package com.mkf.pattern;
public interface Target {
public void operationOne();
public void operationTwo();
}
package com.mkf.pattern.impl;
import com.mkf.pattern.Source;
import com.mkf.pattern.Target;
public class Adapter extends Source implements Target {
@Override
public void operationTwo() {
System.out.println("适配器被调用: " + Adapter.class.getName());
}
}
package com.mkf;
import com.mkf.pattern.Target;
import com.mkf.pattern.impl.Adapter;
public class TestAdapter {
/**
* @param args
*/
public static void main(String[] args) {
Target t = new Adapter();
t.operationOne();
t.operationTwo();
}
}
执行结果:
源被调用: com.mkf.pattern.Source
适配器被调用: com.mkf.pattern.impl.Adapter