Java 适配器模式
什么是适配器模式:
就是将一个类的接口转换成客户需要的另一个接口,它的职责是将本来不能在一起工作的类,可以一起工作。
适配器模式中的角色:
目标接口:客户所期待的接口,目标可以是具体的,或抽象的类,也可以是接口。
需要被适配的类: 需要适配的类或者被适配的类
适配器:通过包装一个需要适配的对象,把原接口转换成目标接口。
案例:
如果我们有一台笔记本,只有有个usb键盘接口,现在我只有一个ps/2接口的键盘,我想连上这台笔记本。我们会怎么做?
一般都是找个适配器,两者就可以在一起工作了。
// 目标接口
public interface TargetObject {
void handleRequest();
}
//被适配的类(相当于我们举的例子中ps/2键盘)
public class Adapted {
public void request(){
Log.d("Adapted","ps/2接口键盘也可以连上只有usb接口的笔记本");
}
}
//这是客户端类,相当于我们举的例子中的笔记本,而且我们的笔记本只有usb接口
public class Client {
public void needUsb(TargetObject target){
target.handleRequest();
}
}
//适配器(相当于usb和ps/2的转接器)
public class Adapter implements TargetObject{
//使用对象组合的方式
private Adapted adapted;
public Adapter(Adapted adapted) {
this.adapted = adapted;
}
@Override
public void handleRequest() {
//具体工作时,本来这里该usb键盘工作的,现在由ps/2键盘(被适配的类)处理
adapted.request();
}
}
//实例化客户端(本例中是笔记本)
Client client=new Client();
//实例化被适配的类(本例中是ps/2键盘)
Adapted adapted=new Adapted();
//实例化适配器(本例中是usb和ps/2的适配器)
TargetObject target=new Adapter(adapted);
//调用客户端的方法
client.needUsb(target);
结果:
还没有评论,来说两句吧...