适配器模式

2016-10-24  本文已影响0人  A_Coder

    适配器模式是将一个类的接口转换成客户端所期望的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够一起工作。适配类可以根据所传递的参数返回一个合适的实例给客户端。

对象适配器模式

/*Target角色*/
public interface FiveVolt{
    public int getVolt5();
}

/*Adapter角色,需要被转换的对象*/
public class Volt220{
    public int getVolt220(){
        return 220;
    }
}
//对象适配器模式
public class VoltAdapter implements FiveVolt{
    Volt220 mVolt220;
    public VoltAdapter(Volt220 adaptee){
        mVolt220 = adaptee;
    }
    public int getVolt220(){
        return mVolt220.getVolt220();
    } 
    @Override
    public int getVolt5(){
        return 5;
    }
}
public class Test{
    public static void main(String []args){
        VoltAdapter adapter = new VoltAdapter(new Volt2209());
        System.out.println("输出电压:" + adapter.getVolt5());
    }
}
    这种实现方式直接将要被适配的对象传递到Adapter中,使用组合的形式实现接口兼容的效果。这比类适配器更为灵活,而且被适配对象中的方法不会暴露出来,而类适配器由于继承了被适配对象,因此,被适配对象类的函数在Adapter类中也都含有,这使得Adapter类出现一些奇怪的接口,用户使用成本较高,因此,对象适配器模式更为灵活、适用。

使用场景

上一篇 下一篇

猜你喜欢

热点阅读