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

装饰工程师优化seo系统

装饰工程师,优化seo系统,建设网站的重要意义,网络媒体广告代理概述 适配器模式 : Adapter Pattern 是一种结构型设计模式. 作用 : 使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 实现思路 : 适配器模式通过将一个类的接口转换成客户希望的另外一个接口来实现这一点。 这里的“接口”指的是类所提供的…

概述

适配器模式 : Adapter Pattern 是一种结构型设计模式.
作用 : 使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
实现思路 : 适配器模式通过将一个类的接口转换成客户希望的另外一个接口来实现这一点。
这里的“接口”指的是类所提供的方法、属性等成员的集合,并非特指面向对象编程语言中的interface。

简单理解 : 适配器模式,就是 中间加一层,把原来的对象包装一下,转换成目标希望的样子。

角色

适配者(Source):需要被适配的类。适配者包含客户想要使用但是接口与目标不兼容的方法。
目标(Target)接口:这是客户所期待的接口。在某些情况下,这个角色可能是一个具体类,而不是接口。
适配器(Adapter):负责将适配者的接口转换为目标接口,从而使原本因为接口不匹配而无法合作的类能够协同工作。

分类

适配器模式分为三类 : 类适配器模式对象适配器模式接口适配器模式

类适配器模式

在不改变原有类结构的情况下,扩展类的功能,以适配不同的接口时,可以使用【类适配器模式】。
实现思路】 : 适配器类 继承 原来的类,并实现目标接口。
实现效果】 : 对原有类的方法,按照 目标接口中的要求进行“包装”,达到适配的效果。

以电源为例,标准的输出电压为220V (适配者),
现在需要给手机/手环 (目标接口)充电,手机要求的电压为 5V,手环要求的电压为 2V ,
此时,就需要 一个充电器(适配器)来进行电压的转换。类图如下 :

在这里插入图片描述

适配者类

public class Power {private int voltage;public Power() {}public Power(int voltage) {this.voltage = voltage;}
// 这个就是要被适配包装的方法public int outPutVoltage() {System.out.println("适配者Power 类中 电压 = " + voltage);return voltage;}
}

目标接口

public interface PhoneCharge {int outPutTargetVoltage();
}

适配器类

public class PhoneAdapter extends Power implements PhoneCharge{public PhoneAdapter() {}public PhoneAdapter(int voltage) {super(voltage);}// 重写目标接口中的方法 : 核心 : 适配的逻辑就在这里@Overridepublic int outPutTargetVoltage() {// 获取到原来的电压int voltageSource = super.outPutVoltage();int targetVoltage = voltageSource/44;System.out.println("手机适配器中的 电压 = " + targetVoltage);return targetVoltage;}
}

客户端类

public class Phone {// 需要使用到 接口类型private PhoneCharge phoneCharge;public Phone(PhoneCharge phoneCharge) {this.phoneCharge = phoneCharge;}// 使用接口中的目标方法即可public void charge() {int voltage = phoneCharge.outPutTargetVoltage();System.out.println("手机获取到的充电电压 = " + voltage);}}

测试类

public class Client {public static void main(String[] args) {Phone phone = new Phone(new PhoneAdapter(220));phone.charge();}
}
运行结果 : 
适配者Power 类中 电压 = 220
手机适配器中的 电压 = 5
手机获取到的充电电压 = 5

对象适配器模式

对象适配器模式 :
1、将 适配者类的对象 作为 适配器类的一个 成员变量
2、适配器类实现 目标接口。
通过 持有适配者类的对象 + 实现目标接口的方式,对原来的逻辑进行扩展。
类图的结构如下:

在这里插入图片描述

适配者类

public class Power {private int voltage;public Power() {}public Power(int voltage) {this.voltage = voltage;}public int outPutVoltage() {System.out.println("适配者Power 类中 电压 = " + voltage);return voltage;}
}

目标接口

public interface PhoneCharge {int outPutTargetVoltage();
}

适配器类

public class PhoneAdapter  implements PhoneCharge{// 直接作为成员变量放进来private Power power;public PhoneAdapter() {}public PhoneAdapter(Power power) {this.power = power;}@Overridepublic int outPutTargetVoltage() {// 通过适配者类的对象,获取到原来的电压int voltageSource = power.outPutVoltage();int targetVoltage = voltageSource/44;System.out.println("手机适配器中的 电压 = " + targetVoltage);return targetVoltage;}
}

客户端类

public class Phone {private PhoneCharge phoneCharge;public Phone(PhoneCharge phoneCharge) {this.phoneCharge = phoneCharge;}public void charge() {int voltage = phoneCharge.outPutTargetVoltage();System.out.println("手机获取到的充电电压 = " + voltage);}}

测试类

public class Client {public static void main(String[] args) {// 创建电源对象,当然这个对象也可以独立使用Power power = new Power(220);Phone phone = new Phone(new PhoneAdapter(power));phone.charge();}
}
运行结果 : 
适配者Power 类中 电压 = 220
手机适配器中的 电压 = 5
手机获取到的充电电压 = 5

接口适配器模式

接口适配模式 , 主要应用在 不希望实现所有的接口方法的情况下
1、创建一个抽象类,给接口中的方法一个默认的实现;
2、然后通过继承该抽象类的方式,只重写部分需要的方法,达到简化代码的效果。
类图如下:

在这里插入图片描述

接口

public interface Say {void sayHello();void sayBye();void sayHi();void sayHaha();
}

抽象实现类

public class SayAbstractImpl implements Say{@Overridepublic void sayHello() {}@Overridepublic void sayBye() {}@Overridepublic void sayHi() {}@Overridepublic void sayHaha() {}
}

子类

public class SayHelloAndBye extends SayAbstractImpl{@Overridepublic void sayHello() {System.out.println(" sayHello  : hello ");}@Overridepublic void sayBye() {System.out.println(" sayBye : bye ");}
}

测试类

public class Test {public static void main(String[] args){Say say = new SayHelloAndBye();say.sayHello();say.sayBye();}
}
运行结果:sayHello  : hello sayBye : bye 

至此,适配器模式的三种使用方式就介绍完成了。

http://www.dtcms.com/wzjs/180089.html

相关文章:

  • 羽毛球赛事策划方案电脑系统优化工具
  • 小型服务器做网站百度开户公司
  • 如何做自己产品网站怎么样在百度上推广自己的产品
  • physon可以做网站怎样制作网站
  • 常德网站建设哪家快网站优化建议
  • 网站淘客怎么做免费制作详情页的网站
  • 免费的网站app软件百度网站流量统计
  • 国外网站三维特效教程升华网络推广软件
  • 扁平化网站建设网络公司排行榜
  • 在自己的电脑做网站空间seo推广代理
  • 手机网站建设制作教程视频百度首页排名优化平台
  • 邯郸建设网站精准引流的网络推广
  • 昆明外贸网站设计服务商电商网站建设 网站定制开发
  • 网站独立开发360渠道推广系统
  • 东莞专业微网站建设推广简述网站推广的意义和方法
  • wordpress绑定域名插件贵阳seo网站推广
  • 2003服务器怎么挂网站seo五大经验分享
  • wordpress 前台上传图片北京seo结算
  • b2b网站代表及网站网址是什么郑州seo优化
  • 用旧技术做网站能过毕设么知乎爱战网关键词挖掘
  • 如何在百度上做网站南昌seo数据监控
  • html做网站的代码新东方烹饪学校学费价目表
  • 猪八戒网做动漫弹幕网站网络推广网站排名
  • 免费网站自动优化软件今日头条新闻下载安装
  • 论坛做网站好吗微信crm客户管理系统
  • 深圳代做网站后台搜索
  • b2b交易网站有哪些哈尔滨网站推广
  • 网站建设学多久长春seo排名收费
  • 做网站开发北京seo地址
  • 如何做高端网站seo教程排名第一