当前位置: 首页 > news >正文

哈尔滨公司网站建设鞍山网站制作推广

哈尔滨公司网站建设,鞍山网站制作推广,软件项目管理软件,找个兼职做网站的设计模式--适配器模式 Adapter Pattern适配器模式 Adapter Pattern1.1 基本介绍1.2 工作原理类适配器模式对象适配器模式接口适配器模式小结适配器模式 Adapter Pattern 1.1 基本介绍 #xff08;1#xff09;适配器模式将某个类的接口转换成为客户端期望的另一个接口表示1适配器模式将某个类的接口转换成为客户端期望的另一个接口表示主要的目的是兼容性让原本应接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器Wrapper. 2适配器模式属于结构型模式 3主要分为三类类适配器模式、对象适配器模式、接口适配器模式 1.2 工作原理 适配器模式将一个类的接口转换成为另一种接口让原本接口不兼容的类可以兼容。从用户的角度看不到被适配者是解耦的。用户调用适配器转换出来的目标接口方法适配器再调用被适配者的相关接口方法。用户收到反馈结果感觉只是和目标接口交互。 类适配器模式 例子电脑的电源适配器将家庭用电电压220伏特转换为5伏特,然后给电脑供电。 被适配者类 package com.robin.adapter.classAdapter;// 被适配者类 public class Voltage220V {public int outPut220V(){int srcV 220;System.out.println([初始-家庭家用电压]电源电压:srcV伏特);return srcV;} } 适配接口 package com.robin.adapter.classAdapter;// 适配接口 public interface ICpVoltage5V {public int outPut(); } 电脑类 package com.robin.adapter.classAdapter;public class Computer {public void charge(ICpVoltage5V iCpVoltage5V){int i iCpVoltage5V.outPut();if (i5){System.out.println([电源适配器]电压为5伏特可以开始充电使用了);}else{System.out.println([电源适配器]电压不正常请检查或者更换电源适配器);}} } 适配器类 package com.robin.adapter.classAdapter;// 适配器类 public class CpVoltageAdapter extends Voltage220V implements ICpVoltage5V{Overridepublic int outPut() {// 因为是继承关系所以调用其父类的 电源电压输出int src outPut220V();// 对220V电压进行简单转换int dest src/44;return dest;} } 测试客户端类 package com.robin.adapter.classAdapter;public class Client {public static void main(String[] args) {Computer computer new Computer();// 通过传入其适配器类的对象来进行充电computer.charge(new CpVoltageAdapter());// [电源适配器]电压为5伏特可以开始充电使用了} } 类适配器模式的优点和缺点 缺点Java是单继承但再类适配器模式中适配器类需要继承被适配的类失去了灵活性。并且被适配者类的方法都会在适配器类中暴露出来增加了使用的成本。优点因为适配器类继承了被适配者类所以适配器类可以根据需求灵活的重写被适配者类。 对象适配器模式 对象适配器模式针对上面的类适配器模式进行了一些修改通过合成复用来代替原本的继承关系。 tip:对象适配器模式是适配器模式中常用的一种。 例子还是上面的电脑电源的适配器问题进行修改将其改为对象适配器模式的。 我们只需要将适配器类中取消继承被适配的类然后在适配器类中提供一个被适配类的成员变量及构造器即可。 被适配者类 package com.robin.adapter.objectAdapter;// 被适配者类 public class Voltage220V {public int outPut220V(){int srcV 220;System.out.println([初始-家庭家用电压]电源电压:srcV伏特);return srcV;} } 适配接口 package com.robin.adapter.objectAdapter;// 适配接口 public interface ICpVoltage5V {public int outPut(); } 电脑类 package com.robin.adapter.objectAdapter;public class Computer {public void charge(ICpVoltage5V iCpVoltage5V){int i iCpVoltage5V.outPut();if (i5){System.out.println([电源适配器]电压为5伏特可以开始充电使用了);}else{System.out.println([电源适配器]电压不正常请检查更换电源适配器);}} } 适配器类 package com.robin.adapter.objectAdapter;// 适配器类 public class CpVoltageAdapter implements ICpVoltage5V {// 合成复用 将被适配类聚合到适配器类中private Voltage220V voltage220V null;// 提供被适配类的构造器public CpVoltageAdapter(Voltage220V voltage220V) {this.voltage220V voltage220V;}// 重写适配接口中的方法Overridepublic int outPut() {if (null ! voltage220V){int srcV voltage220V.outPut220V();int dstV srcV/44;System.out.println(电源电压适配完成,电源电压dstV);return dstV;}return -1;} } 客户端测试类 package com.robin.adapter.objectAdapter;public class Client {public static void main(String[] args) {System.out.println(对象适配器模式);Computer computer new Computer();computer.charge(new CpVoltageAdapter(new Voltage220V()));} } 对象适配器模式与类适配器模式基本一致只是通过合成复用代替继承解决了类适配器产生的继承局限问题使用成本更低更灵活。 接口适配器模式 接口适配器模式的思想当不需要全部实现接口提供的方法时可以先设计一个抽象类实现接口并为该接口中的每个方法提供一个默认实现空方法体那么该抽象类的子类可以有选择的覆盖父类的某些方法来实现需求。 接口适配器模式适用于不想使用一个适配接口中所有方法的情况按照自己的需求来挑选合适的方法自行实现。 比如你要去旅游了每个国家插座插孔和电压都不一样你带了一个万能转换器比如wp-933 然后各国插座如下 暂且假定该万能转换插孔只提供一个空的插孔需要你去自定义实现我例子举得不是很好…有点牵强 万能插孔适配接口 package com.robin.adapter.interfaceadpter;// 万能插孔适配接口 public interface AllJacks {// 德国标准public void germanJack();// 欧洲标准public void europeanJack();// 中国澳大利亚标准public void chinaAndOzJack();// 美国标准public void usaJack();//...... } 万能插孔抽象类实现接口中的所有方法提供空方法体 package com.robin.adapter.interfaceadpter;// 抽象类实现万能适配接口实现全部接口方法提供空方法体 public abstract class AbsAllJacksAdapter implements AllJacks {// 德国Overridepublic void germanJack() {}// 欧洲Overridepublic void europeanJack() {}// 中国和澳大利亚Overridepublic void chinaAndOzJack() {}// 美国Overridepublic void usaJack() {} } 客户端测试 package com.robin.adapter.interfaceadpter;public class Client {public static void main(String[] args) {// 中国电脑插孔为三孔方形String srcJack [三孔]三方形孔;// 假设我现在旅行去美国AbsAllJacksAdapter absAllJacksAdapter new AbsAllJacksAdapter(){Overridepublic void usaJack() {System.out.println(使用万能转化器转换);// 美国电压为 100-130V,插孔为三孔两方一圆String destJack [三孔]两方一圆孔;System.out.println([插孔适配完毕]:srcJackdestJack);}};absAllJacksAdapter.usaJack();} } 小结 适配器模式的三种方式也其实就是被适配类如何被适配器类获取使用的类继承对象合成复用接口。Adapter适配器模式的最大作用就是将原本不兼容的接口融合在一起工作。
http://www.hkea.cn/news/14578954/

相关文章:

  • 广东网站备案查询系统个人创业做网站
  • 简单个人博客模板网站定制网站建设的流程图
  • 漳州建网站前十名少儿编程机构
  • 做学历的网站网站title 在哪里设置
  • 那个网站做搬家推广比较好一二三四免费观看视频中文版在线
  • 建设网站的企业是什么wap手机网站建站
  • 有专门做序列图的网站建站网址大全
  • 专业的企业网站优化公司企业宣传片制作拍摄
  • 有空间怎么做网站好公司的网站设计
  • 做骑兵电影网站赚钱企业网站作业怎么做
  • 谷歌做自己的网站网站开发培训那个好
  • 高端集团官方网站建设公司360seo优化
  • 个人网站域名快速备案流程wordpress增加文章目录
  • 洛阳市建设工程安全监督网站郑州网站建设哪家最好
  • 企业网站官网模板WordPress部署百度广告
  • 知名营销网站开发如何自建网站入口
  • 网站需求表格网站开发从事
  • 门户网站 页面集成wordpress 封禁账号
  • 做logo专用的网站是哪个h5页面设计用什么软件
  • 网站的规划建设与分析静态网站更新
  • 手机网站开发周期专业从事成都网站建设
  • 搜索引擎及门户网站介绍总结设计logo的小程序
  • 网站建设 需要多少空间西安黄页查询
  • 在线生成网页网站贵阳市网站开发
  • 官方网站如何建立网站续费有什么作用
  • 做外贸网站有哪些做房产经纪人要自己花钱开网站吗
  • 东莞艺美网站建设网站购买云空间
  • 哪有免费做网站黄冈商城网站建设
  • 海拉尔做自己的网站做网站的一般都包维护吗
  • 网站域名年龄查询关键词推广哪家好