适配器模式简介

#适配器介绍:
适配器模式可以提高我们的开发效率,比如我们常见的LIstView、GridView和RecyclerView都需要使用Adapter。他就像一个粘合剂,将两个不兼容的类融合到一起。
#适配器模式的定义:
把一个类的接口变成客户端所期待的另一个接口,使本来不不匹配二无法再一起工作的类可以在一起工作。
#使用场景
1)系统需要使用现有的类,而类的接口不符合要求
2)需要建立一个可以重复使用的类,用于一些彼此之间没有太大关联的类
3)需要一个统一的接口,而输入类型不确定
#分类
适配器模式分为两种类型:类适配器模式和对象适配器模式。
类适配器模式:通过继承adaptee类来实现
Interface(operation1)------->adapter(operation1)<-------adaptee(opteration2)
对象适配器模式:通过构造adaptee的实例来实现
Interface(operation1)------->adapter(operation1)<-------adaptee(opteration2)

类适配器模式

/**
 * Created by libin on 16/11/17.
 * target
 */

public interface FiveVolt {
    int getFiveVole();
}
/**
 * Created by libin on 16/11/17.
 * adaptee
 */

public class Volt220 {
    public int getVolt220(){
        return 220;
    }
}

/**
 * Created by libin on 16/11/17.
 * 类适配器模式
 * adapter
 */

public class Class_adapter extends Volt220 implements FiveVolt{

    @Override
    public int getFiveVole() {
        return 5;
    }
}

对象适配器

/**
 * Created by libin on 16/11/17.
 * Targeet
 */

public interface FiveVolt {
    int getFiveVole();
}
/**
 * Created by libin on 16/11/17.
 * adaptee
 */

public class Volt220 {
    public int getVolt220(){
        return 220;
    }
}
/**
 * Created by libin on 16/11/17.
 * 对象适配器模式
 * adapter
 */

public class Target_adapter implements FiveVolt{
    Volt220 volt220;

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


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

    @Override
    public int getFiveVole() {
        return 5;
    }
}

该项目github源码:https://github.com/libin7278/DesignModle

扫码关注公众号“伟大程序猿的诞生“,更多干货新鲜文章等着你~

公众号回复“资料获取”,获取更多干货哦~

有问题添加本人微信号“fenghuokeji996” 或扫描博客导航栏本人二维码

发布了97 篇原创文章 · 获赞 961 · 访问量 49万+

猜你喜欢

转载自blog.csdn.net/github_33304260/article/details/53200959