Java模式(适配器模式)

Java模式(适配器模式)

今天看了下Java中的适配器模式,下面就来小做下总结和谈谈感想,以便日后使用。

 

首先,先来先讲讲适配器。适配就是由“源”到“目标”的适配,而其中链接两者的关系就是适配器。它负责把“源”过度到“目标”。举个简单的样例,比方有一个“源”是一个对象人,他拥有2种技能各自是说日语和说英语,而某个岗位(目标)须要你同一时候回说日语、英语、和法语,好了,如今我们的任务就是要将人这个“源”适配的这个岗位中,怎样适配呢?显而易见地我们须要为人加入�一个说法语的方法,这样才干满足目标的须要。

 

接着讨论怎样加说法语这种方法,或许你会说,为什么不直接在“源”中直接加入�方法,我的理解是,适配是为了实现某种目的而为一个源类临时性的加上某种方法,所以不能破坏原类的结构。同一时候不这么做也符合Java的高内聚,低耦合的原理。既然不能直接加,接着我们就来说该怎么来实现为人这个“源”加入�一个方法,而又不破坏“源”的本身结构。

 

适配器模式有2种,第一种是“面向类的适配器模式”,另外一种是“面向对象的适配器模式”。

 

先说“面向类的适配器模式”。顾名思义,这类适配器模式就是主要用于,单一的为某个类而实现适配的这样一种模式,为什么说仅仅为某个类去实现,一会提到,我们先展示这样的类适配模式的代码实现。

 

源的代码例如以下:

 

 目标接口的代码例如以下:

 适配器的代码例如以下:

 

好了,代码看完然后要做一些说明了,之前遗留的一个问题,为什么称其为类适配模式呢?非常显然的,Adapter类继承了Person类,而在Java这样的单继承的语言中也就意味着,他不可能再去继承其它的类了,这样也就是这个适配器仅仅为Person这一个类服务。所以称其为类适配模式。

 

说完类的适配模式,我们要開始说第2种对象的适配器模式了。对象适配器模式是把“源”作为一个对象聚合到适配器类中。相同的话不多说,贴上代码:

 

源的代码以及目标代码同上,再次不再赘述。

仅贴出适配器代码:

 

对象的适配器模式,把“源”作为一个构造參数传入适配器,然后运行接口所要求的方法。这样的适配模式能够为多个源进行适配。弥补了类适配模式的不足。

 

如今来对2种适配模式做个分析:

1.类的适配模式用于单一源的适配,因为它的源的单一话,代码实现不用写选择逻辑,非常清晰;而对象的适配模式则可用于多源的适配,弥补了类适配模式的不足,使得原本用类适配模式须要写非常多适配器的情况不复存在,弱点是,因为源的数目能够较多,所以详细的实现条件选择分支比較多,不太清晰。

2.适配器模式主要用于几种情况:(1)系统须要使用现有的类,但现有的类不全然符合须要。(2)讲彼此没有太大关联的类引进来一起完毕某项工作(指对象适配)。

 

最后,再来顺带谈谈默认适配器模式:这样的模式的核心归结例如以下:当你想实现一个接口但又不想实现全部接口方法,仅仅想去实现一部分方法时,就用中默认的适配器模式,他的方法是在接口和详细实现类中加入�一个抽象类,而用抽象类去空实现目标接口的全部方法。而详细的实现类仅仅须要覆盖其须要完毕的方法就可以。代码例如以下:

接口类:

抽象类: 

实现类:

 

好了,适配器模式就先讲到这了,希望对自己和大家都有一个提高。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119180.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Elasticsearch索引迁移的四种方式

    Elasticsearch索引迁移的四种方式本文主要讲解Elasticsearch下实现索引迁移的几种方式。0、引言将ES中的索引拷贝到其他ES中,或者将ES整体迁移,研究发现有两个开源的工具:elaticserch-dump和Elasticsearch-Exporter。除此之外,logstash在索引同步、迁移方面的作用也很大。两工具及logstash实现迁移的介绍、安装、使用、验证效果等展示如下:1、el…

    2022年5月29日
    112
  • MyCat读写分离

    MyCat读写分离

    2021年7月10日
    101
  • 图文详解PID调参

    图文详解PID调参不会PID调参?这篇文章图文结合带你学会PID调参!让你成为PID调参大神!!!

    2022年6月5日
    34
  • 局域网广域网区别_局域网和广域网的简称

    局域网广域网区别_局域网和广域网的简称一、局域网 局域网(LocalAreaNetwork),简称LAN,是指在某一区域内由多台计算机互联成的计算机组。“某一区域”指的是同一办公室、同一建筑物、同一公司和同一学校等,一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、扫描仪共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算

    2022年9月25日
    2
  • kmp算法入门,入门题集合

    kmp算法入门,入门题集合

    2021年9月27日
    60
  • mac双系统安装方法_macbook如何安装双系统

    mac双系统安装方法_macbook如何安装双系统Mac上安装双系统(传统BootCamp傻瓜式)图文教程写在前面:Mac用户在使用过程中,多少有的时候还会使用Windows,想装一个咋办?找某宝需要花钱150元,看这篇文章,十几分钟看明白,自己动手丰衣足食!所以本文将以图文教程教你如何安装双系统,开机随意选择,想用什么用什么!尽管我不是很喜欢用Windows…….个人建议阅读完本文章,彻底看明白之后再对照操作安装前期准备工作:需准备至少8Gb空优盘一个,不是空的可以提前备份一下,制作启动盘会格式化优盘,请注意!制作启动盘…

    2022年10月6日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号