Java设计模式笔记之适配器模式

1.前言

适配器模式在Android开发中使用率极高,可以通过随处使用的Adapter来体现。适配器归根结底就是将两个不兼容的类融合在一起,好比粘结剂一样。

2.定义

适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

3.UML图

适配器模式分为两种:①类适配器模式;②对象适配器模式。


类适配器模式采用的是继承的方式。下面是对象适配器模式的UML图。


4.思维导图


5.代码简单实例

//Target角色
public interface FiveVolt {

    int getVolt5();
}

//需要被转换的角色,Adaptee
public class Volt220 {

    public int getVolt220(){
        return 220;
    }

}

//Adapter角色,将220V电压转换成电脑需要的5V电压;
// 类适配器模式关键代码
public class VoltAdapter extends Volt220 implements FiveVolt {
    @Override
    public int getVolt5() {
        return 5;
    }
}

        //类适配器模式
        VoltAdapter adapter = new VoltAdapter();
        Log.d("zsf","输出电线电压:" + adapter.getVolt220());
        Log.d("zsf","输出电源电压:" + adapter.getVolt5());

--------------------------------------------------------------------------我是分割线(下面就是对象适配器模式的示例代码了)-------------------------------------------------------------------------

//Target角色
public interface FiveVolt {

    int getVolt5();
}

//需要被转换的角色,Adaptee
public class Volt220 {

    public int getVolt220(){
        return 220;
    }

}
//对象适配器模式关键代码
//没有使用extends方式,而是采用了构造方法
public class VoltAdapter2 implements FiveVolt {
    Volt220 mVolt220;

    public VoltAdapter2(Volt220 volt220) {
        mVolt220 = volt220;
    }

    public int getVolt220() {
        return mVolt220.getVolt220();
    }

    @Override
    public int getVolt5() {
        return 0;
    }
}

        //对象适配器模式
        VoltAdapter2 adapter2 = new VoltAdapter2(new Volt220());
        Log.d("zsf","输出电源电压:" + adapter2.getVolt5());

6.总结

优点:

①更好的复用性;②更好的扩展性

缺点:

过多使用适配器模式造成系统凌乱。体现在代码上看到的是用A接口,但内部被适配成了B接口。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值