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);

结果:

               

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值