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

网站备案 主办单位虚拟网站建设指导

网站备案 主办单位,虚拟网站建设指导,网站建设应注意的问题,手机网站被禁止访问怎么设置打开适配器模式 适配器模式是一种结构型设计模式。作用:当接口无法和类匹配到一起工作时,通过适配器将接口变换成可以和类匹配到一起的接口。(注:适配器模式主要解决接口兼容性问题) 适配器的优点与缺点: 优…

适配器模式

适配器模式是一种结构型设计模式。作用:当接口无法和类匹配到一起工作时,通过适配器将接口变换成可以和类匹配到一起的接口。(注:适配器模式主要解决接口兼容性问题)

适配器的优点与缺点:

优点:复用性更强,对于那些和目标接口差别不是很大的类,通过适配器可以让这些类达到很好的复用,减少代码的书写。并且在适配中可以添加一些方法来扩展系统的功能,扩展性更好
缺点:用多了会让系统看起来杂乱无章。比如:明明调用的是接口A,结构里面的内容以及被修改成了接口B。一般建议直接对系统进行重构。

适配器模式结构

源(Adaptee):需要被适配的对象或类型。
适配器(Adapter):连接目标和源的中间对象,负责将Adaptee转换为Target。
目标(Target):目标角色,即被转换后的接口。

适配器模式实现方式由三种:类适配器模式、对象适配器模式、接口适配器模式。

三种模式的特点

类适配器模式:类适配器使用的是继承的方式,一般来说无法对其子类进行适配
对象适配器模式:对象适配器使用的是组合的方式,子孙类都可以被适配。另外,对象适配器对于增加一些新行为非常方便,而且新增加的行为同时适用于所有的源。
接口适配器模式(又称缺省适配器模式):接口适配器模式(缺省适配模式)基本思想是,为一个接口提供缺省实现,这样子类可以从这个缺省实现进行扩展,而不必从原有接口进行扩展。

一、类适配器模式

类适配器:即是适配一个类
下发远控命令,使用空调远控命令适配器适配公共远控命令下发
1、源类

public class RemoteControl{@Autowiredprivate KafkaProducer kafkaProducer;@Overridepublic Boolean sendMsg(BaseRemoteRequestBean requestBean) {//业务return kafkaProducer.remoteControl(JSONObject.toJSONString(requestBean));}
}

2、编写适配接口

public interface AirCondAdapter {Boolean sendMsg(AirConditionRemoteRequestBean remoteRequestBean);
}

3、实现适配接口

//适配RemoteControlServiceImpl这个类
@Service
public class RemoteControlAirCondAdapter extends RemoteControlServiceImpl implements AirCondAdapter{@Overridepublic Boolean sendMsg(AirConditionRemoteRequestBean remoteRequestBean) {BaseRemoteRequestBean baseRemoteRequestBean=new BaseRemoteRequestBean();BeanUtils.copyProperties(remoteRequestBean,baseRemoteRequestBean);return super.sendMsg(baseRemoteRequestBean);}
}

二、接口适配器模式

接口适配器:适配接口
1、声明源接口

public interface RemoteControlService {Boolean sendMsg(BaseRemoteRequestBean requestBean);Boolean sendMsg(AirConditionRemoteRequestBean remoteRequestBean);
}

2、实现源接口

public abstract class RemoteControlServiceImpl implements RemoteControlService{@Autowiredprivate KafkaProducer kafkaProducer;@Overridepublic Boolean sendMsg(BaseRemoteRequestBean requestBean) {//业务return kafkaProducer.remoteControl(JSONObject.toJSONString(requestBean));}//适配这个接口public abstract Boolean sendMsg(AirConditionRemoteRequestBean remoteRequestBean);
}

3、适配源接口

@Service
public class RemoteControlAirCondAdapter extends RemoteControlServiceImpl{@Overridepublic Boolean sendMsg(AirConditionRemoteRequestBean remoteRequestBean) {BaseRemoteRequestBean baseRemoteRequestBean=new BaseRemoteRequestBean();BeanUtils.copyProperties(remoteRequestBean,baseRemoteRequestBean);return super.sendMsg(baseRemoteRequestBean);}
}

三、对象适配器模式

对象适配器:适配的是这个对象
1、适配器接口

public interface AirCondAdapter {//下发空调远控指令Boolean sendAirCondMsg(AirConditionRemoteRequestBean remoteRequestBean);//下发座椅远控指令Boolean sendSeatMsg(SeatRemoteRequestBean remoteRequestBean);
}

2、实现适配器

@Service
public class RemoteControlAirCondAdapter implements AirCondAdapter{//适配这个对象@Autowiredprivate RemoteControlService remoteControlService;@Overridepublic Boolean sendAirCondMsg(AirConditionRemoteRequestBean remoteRequestBean) {BaseRemoteRequestBean baseRemoteRequestBean=new BaseRemoteRequestBean();BeanUtils.copyProperties(remoteRequestBean,baseRemoteRequestBean);return remoteControlService.sendMsg(baseRemoteRequestBean);}@Overridepublic Boolean sendSeatMsg(SeatRemoteRequestBean remoteRequestBean) {BaseRemoteRequestBean baseRemoteRequestBean=new BaseRemoteRequestBean();BeanUtils.copyProperties(remoteRequestBean,baseRemoteRequestBean);return remoteControlService.sendMsg(baseRemoteRequestBean);}
}
http://www.yayakq.cn/news/578157/

相关文章:

  • 宁波手机网站开发公司wordpress 静态化 linux
  • 智能网站建设步骤周大福网站建设主要工作
  • 长春网站营销网站建设花多少钱
  • 织梦网站怎么做投票广州建站快车
  • 怎么在jsp网站做验证码网站建设苏州公司
  • 怎么制作网站后台专做hip hop音乐的网站
  • 水贝做网站公司服装设计公司室内平面图
  • 网站栏目模块莱芜市在线论坛话题
  • 用word做网站学网页设计学徒培训
  • 福永专业外贸网站建设公司群晖里的wordpress如何删除
  • 潍坊网站制作保定公司电话微信网页版无法登录
  • 网站站群建设进度wordpress 控制每页显示文章数
  • 做网站一定要域名吗网站建设义乌
  • 济宁网站优化公司广州最专业的网站建设
  • 为朋友做的网站海门市规划建设局网站
  • 网站开发深圳网站建设对电子商务的作用
  • 校园网站建设必要性网站行业关键词
  • 网站维护界面seo流量排行榜神器
  • 给帅哥做奴视频网站地址html网页制作期末大作业成品
  • asp网站源码免费版宁波设计公司排行榜
  • 少儿编程自学网站护肤品网站优化案例
  • cp网站建设网站制作工作室制作平台
  • 室内装修设计软件app海口seo网络推广
  • 网站进入沙盒后山南网站建设
  • 网站建设合同范文58同城如何发广告
  • 城固城乡建设规划网站门户网站优化方案
  • 网站视频做背景关于小学网站建设的论文
  • 千里马招标网站wordpress什么意思
  • 南昌企业制作网站设计文字设计成图形logo
  • 邯郸建设局公开网站wordpress链接设置方法