今天我来全面总结一下Android开发中最常用的设计模式 - 适配器模式
1.1 定义
适配器模式,即定义一个包装类,用于包装不兼容接口的对象
包装类 = 适配器Adapter; 被包装对象 = 适配者Adaptee = 被适配的类
1.2 主要作用
把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。
适配器模式的形式分为:类的适配器模式和对象的适配器模式
1.3 解决的问题
原本由于接口不兼容而不能一起工作的那些类可以在一起工作。
2.1 类的适配器模式
类的适配器模式是把适配的类的API转换成为目标类的API。
2.1.1 UML类图 & 组成
在上图中可以看出:
Adapter与Adaptee是继承关系,这决定了这个适配器模式是类的
2.1.2 使用步骤(代码解析)
步骤1: 创建Target接口;
步骤2: 创建源类(Adaptee) ;
步骤3: 创建适配器类(Adapter)
步骤4: 定义具体使用目标类,并通过Adapter类调用所需要的方法从而实现目标
2.1.3 实例讲解 接下来我用一个实例来对类的适配器模式进行更深一步的介绍。 a. 实例概况
即适配器模式中的类的适配器模式
b. 使用步骤 步骤1: 创建Target接口(期待得到的插头):能输出110V(将220V转换成110V)
步骤2: 创建源类(原有的插头) ;
步骤3: 创建适配器类(Adapter)
步骤4: 定义具体使用目标类,并通过Adapter类调用所需要的方法从而实现目标(不需要通过原有插头)
2.2 对象的适配器模式
与类的适配器模式相同,对象的适配器模式也是把适配的类的API转换成为目标类的API。
与类的适配器模式不同的是,对象的适配器模式不是使用继承关系连接到Adaptee类,而是使用委派关系连接到Adaptee类。
2.2.1 UML类图
在上图中可以看出:
Adapter与Adaptee是委派关系,这决定了适配器模式是对象的。 2.2.2 使用步骤(代码解析)
步骤1: 创建Target接口;
步骤2: 创建源类(Adaptee) ;
步骤3: 创建适配器类(Adapter)(不适用继承而是委派)
步骤4: 定义具体使用目标类,并通过Adapter类调用所需要的方法从而实现目标
在这里我就不再举实例进行讲解了(详情请看上面“进口机器的插头”),只是在适配类实现时将“继承”改成“在内部委派Adaptee类”而已
3.1 适配器模式
优点
缺点
3.2 类的适配器模式
优点
缺点
3.3 对象的适配器模式
优点
缺点
特别是需要重新定义Adaptee行为时需要重新定义Adaptee的子类,并将适配器组合适配
4.1 适配器的使用场景
4.2 类和对象适配器模式的使用场景
本文主要对适配器模式进行了全面介绍,接下来将介绍其他设计模式,有兴趣可以继续关注!!!!
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/1041.html