(七)适配器模式-代码实现

介绍

意图:将一个类的接口转换成客户希望的另外一个接口。 A d a p t e r模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

别名:包装器 Wrapper

动机:有时,为复用而设计的工具箱类不能够被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配。

应用场景:需要使用到老的类,但是不符合新接口规则的时候,就是适配器出场的时候了

 

 

代码:

//老的类

 

package note.com.adapter;

public class OldActionA {
    public void start(){
        System.out.println("start开始工作");
    }
}

 

//新的类基类

package note.com.adapter;

public interface NewAction {
    public void run();
}

//新的类实现

package note.com.adapter;

public class NewActionB implements NewAction{
    public void run(){
        System.out.println("run开始工作");
    }
}

//新的调用规则

package note.com.adapter;

public class NewClient {

    public void userDo(NewAction action){
        action.run();
    }
}

//符合新的调用规则的老类适配器

package note.com.adapter;

public class NewAdapter implements NewAction{//如果新类是没有基类的,可以直接继承新类

    private OldActionA a = null;
    public NewAdapter(OldActionA a){
        this.a = a;
    }
    public void run() {
        a.start();
    }

}

//测试类

package note.com.adapter;

public class AdapterTest {
    public static void main(String[] args) {
        NewClient client = new NewClient();//创建新的调用器
        NewActionB newB = new NewActionB();//符合新调用器规则的类
        client.userDo(newB);//调用器调用
        OldActionA oldA = new OldActionA();//不符合新调用器规则的类
        NewAdapter newA = new NewAdapter(oldA);//能够对不符合调用器规则的类进行适配的适配器
        client.userDo(newA);//调用器调用
    }
}

//结果

run开始工作
start开始工作

 

posted on 2016-03-02 10:13  'Note' 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/qinggege/p/5233859.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值