设计模式之适配器模式

适配器模式,这个设计模式很好理解,由于在生活中实在是太常见了。比如电源适配器,插座提供1个220v的电压,而我的电脑用19v的电压,arm用5v的电压。如果目标很少,电源可以给你定制1个电压,但当需求电压很多的时候就没办法去提供各种各样的需求了,此时电源适配器就派上用处了,通过1个适配,轻松获得需求的电压。类似的还有翻译,比如某个网站提供的是通用的英语原文,而用户只懂中文,就需要1个翻译官充当适配器的作用去做适配。

适配器模式,在我们的学习进程中,处处可见,比如C++的stack/queue就是所谓的适配器容器,用户有很多这样的需求,有1个双端队列提供了这个功能,但接口其实不是用户想要的接口,通过stack这类适配器去做相应的转换就能够了。在android中,适配器就更常见了,比如listview上需要各种数据,但是这些数据本身并没有提供对应的接口,所以需要各种适配器去封装这些数据,然后供listview使用。

前面大概说了下利用,下面说点适配器中的角色(仅以电源适配器为例:

(1)目标Target: arm,arm运行需要5v的电压;

(2)待适配的类Adaptee(源类):可以提供220v的电压,其实不能满足目标的需求;

(3)适配器(Adapter):电源适配器,将220v的电压转换成5v的电压。

适配器分为类适配器模式和对象适配器模式,可以将1个系统的接口和本来不相容 的另外一个系统的类联系起来,从而使得这两个雷能够1起工作,强调了对接口的转换。

UML还是自己画吧,我太懒了,自己手画的。。。

———————————————————————————-

下面讲讲实现的源码,JAVA:

待适配的源类:

//PowerSouce.java
package org.uestc.adapter;

public class PowerSource {

private int voltage;

public void SetDianya(int v) {
voltage = v;
System.out.println("我提供的电压是:"+voltage);
}

public int GetVoltage() {
return voltage;
}

}

适配器:

//Adapter.java
package org.uestc.adapter;

import org.uestc.adapter.PowerSource;;

public class Adapter {

private PowerSource powerSource;

public Adapter(PowerSource powerSource) {
this.powerSource = powerSource;
}

public int voltageSwitch() {
int intpuDianya = powerSource.GetVoltage();
System.out.println("现在开始进行电压转换…..");
int outputDianya = 5;
return outputDianya;
}

}

目标类:

//Arm.java
package org.uestc.adapter;

public class Arm {
private int voltage;

public void inputDianya(int v) {
voltage = v;
}

public void run() {
if(voltage== 5) {
System.out.println("arm正常运行");
} else {
System.out.println("输入电压不正常不能开机运行");
}
}

}

客户端测试:

//client.java
package org.uestc.adapter;

import org.uestc.adapter.PowerSource;;
public class Client {
public static void main(String []args) {
PowerSource powerSource = new PowerSource();
powerSource.SetDianya(220);

Adapter adapter = new Adapter(powerSource);

Arm arm = new Arm();
arm.inputDianya(adapter.voltageSwitch());
arm.run();
}

}

运行结果:

我提供的电压是:220
现在开始进行电压转换
arm正常运行

PS:

参考帖子:点击打开链接

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » 设计模式之适配器模式

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡