国外做兼职的网站有哪些,建筑网站大全导航,域名和网站绑定,40个创意包装盒设计本文实例讲述了Java适配器模式应用之电源适配器功能。分享给大家供大家参考#xff0c;具体如下#xff1a;一、模式定义存在两种适配器模式1 对象适配器模式#xff0c;在这种适配器模式中#xff0c;适配器容纳一个它包裹的类对象的物理实体。2 类适配器模式#xff0c;…本文实例讲述了Java适配器模式应用之电源适配器功能。分享给大家供大家参考具体如下一、模式定义存在两种适配器模式1 对象适配器模式在这种适配器模式中适配器容纳一个它包裹的类对象的物理实体。2 类适配器模式在这种适配器模式中适配器继承自已实现的类。二、模式举例1 模式分析我们借用笔计本电源适配器来说明这一模式。已经存在的交流电源笔记本电脑电源适配器2 适配器模式的静态建模3 代码举例3.1 抽象电源建立package com.demo.power;/*** 电源基类** author**/public abstract class AbsBasePower{// 电压值private float power;// 单位private String unit V;// 构造方法public AbsBasePower(float power){this.power power;}public float getPower(){return power;}public void setPower(float power){this.power power;}public String getUnit(){return unit;}public void setUnit(String unit){this.unit unit;}}3.2 220v电源接口package com.demo.power.v220;/*** 220V 电源接口** author**/public interface IPower220 {// 220V交流电源打印public void output220v();}3.3 220v电源实现类package com.demo.power.v220;import com.demo.power.AbsBasePower;/*** 220V电源** author**/public class Power220 extends AbsBasePower implements IPower220{// 构造方法public Power220(){super(220);}// 220V电源输出public void output220v(){System.out.println(----这是[ this.getPower() this.getUnit() ]电源...);}}3.4 12v电源接口package com.demo.power.v12;/*** 12V 电源接口** author**/public interface IPower12 {// 12V电源打印public void output12v();}3.5 12v电源实现类package com.demo.power.v12;import com.demo.power.AbsBasePower;/*** 正常的12V电源** author**/public class Power12 extends AbsBasePower implements IPower12 {// 12V电源构造方法public Power12() {super(12);}// 12V电源输出public void output12v() {System.out.println(----这是[ this.getPower() this.getUnit() ]电源...);}}3.6 12v电源对象适配器package com.demo.adapter;import com.demo.power.AbsBasePower;import com.demo.power.v12.IPower12;/*** 电源适配器 (实现目标对象接口 即12V电源接口)** author**/public class AdapterPower12 implements IPower12 {// 待转换的对象private final AbsBasePower absBasePower;// 适配器构造方法 将待转换对象传入public AdapterPower12(AbsBasePower absBasePower) {this.absBasePower absBasePower;}// 实现目标对象方法public void output12v() {// 获得外部电源值float powerFloat this.absBasePower.getPower();// 进行电源转换if (powerFloat 380) {// 380V电源转换powerFloat powerFloat / 31.67f;} else if (powerFloat 220) {// 220V电源转换powerFloat powerFloat / 18.33f;} else if (powerFloat 110) {// 110V电源转换powerFloat powerFloat / 9.17f;} else {System.out.println(----不能适配电源...);return;}// 处理转换结果powerFloat (int) (powerFloat * 10) / 10.0f;System.out.println(----这是[ powerFloat this.absBasePower.getUnit() ]电源...);}}3.7 12v电源类适配器package com.demo.adapter;import com.demo.power.AbsBasePower;import com.demo.power.v12.IPower12;/*** 电源适配器 (实现目标对象接口 即12V电源接口) 类适配器 模式** author**/public class AdapterPower12Ext extends AbsBasePower implements IPower12 {// 适配器构造方法 将待转换对象传入public AdapterPower12Ext(AbsBasePower absBasePower) {super(absBasePower.getPower());}// 实现目标对象方法Overridepublic void output12v() {// 获得外部电源值float powerFloat this.getPower();// 进行电源转换if (powerFloat 380) {// 380V电源转换powerFloat powerFloat / 31.67f;} else if (powerFloat 220) {// 220V电源转换powerFloat powerFloat / 18.33f;} else if (powerFloat 110) {// 110V电源转换powerFloat powerFloat / 9.17f;} else {System.out.println(----不能适配电源...);return;}// 处理转换结果powerFloat (int) (powerFloat * 10) / 10.0f;System.out.println(----这是[ powerFloat this.getUnit() ]电源...);}}3.8 测试适配器package com.demo;import com.demo.adapter.AdapterPower12;import com.demo.adapter.AdapterPower12Ext;import com.demo.power.v12.IPower12;import com.demo.power.v12.Power12;import com.demo.power.v220.Power220;/*** 客户端程序调用** author**/public class Client {/*** param args*/public static void main(String[] args) {// 我们首先 生成一个220V电源对象Power220 power220 new Power220();power220.output220v();// 接下来我们在生成一个12V电源对象IPower12 power12 new Power12();power12.output12v();// 最后我们使用电源适配器 将220V电源转换为12V电源System.out.println(\n----电源适配器转换中...);IPower12 adapterPower12 new AdapterPower12(power220);adapterPower12.output12v();System.out.println(----电源适配器转换结束);// 类适配器实现System.out.println(\n----类适配器 电源适配器转换中...);IPower12 adapterPower12Ext new AdapterPower12Ext(power220);adapterPower12Ext.output12v();System.out.println(----类适配器 电源适配器转换结束);}}3.9 运行结果三、设计原则1使用对象组合面向接口和抽象编程2“开一闭”原则四、使用场合1 软件系统结构需要升级或扩展又不想影响原有系统稳定运行的时候2 转换类之间的差?e不是很大的时候3 想创建一个可以复用的类该类可以与其他不相关类或不可预见类协同工作的时候五、类适配器模式和对象适配器模式的静态类图希望本文所述对大家java程序设计有所帮助。