适配者模式可以比喻成这个场景,只有usb接口的电脑电脑、ps/2接口的键盘、转接线,电脑要实现打字功能就要用到键盘,因为他们两接口不一致没发直接连接所以要借助转接线,转接线就相当于一个适配器(Adapter),而键盘就是就是被适配者(Adaptee),电脑是一个客户端(Client)。
下面用代码来表述他们的关系。
首先定义一个客户端,
//客户端需要打字功能
public class Client {
private void request(Target t) {
t.hsndleClient();
}
}
定义出那个键盘,它有打字功能
//被适配者
public class Adaptee {
public void print(){
System.out.print("打字功能");
}
}
然后定义一个接口,里面有一个处理客户端请求的方法
public interface Target {
void hsndleClient();
}
public class Adapter2 implements Target {
Adaptee mAdaptee;
public Adapter2(Adaptee adaptee) {
mAdaptee = adaptee;
}
@Override
public void hsndleClient() {
mAdaptee.print();
}
}