美文网首页
适配器模式

适配器模式

作者: A_Coder | 来源:发表于2016-10-24 12:25 被阅读0次

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

    对象适配器模式

    /*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类出现一些奇怪的接口,用户使用成本较高,因此,对象适配器模式更为灵活、适用。
    

    使用场景

    • 系统需要使用实现现有的类,而此类的接口不符合系统的需要,即接口不兼容。
    • 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。
    • 需要一个统一的输出接口,而输入端的类型不可预知。

    相关文章

      网友评论

          本文标题:适配器模式

          本文链接:https://www.haomeiwen.com/subject/hehluttx.html