Java模式(适配器模式)

Java模式(适配器模式)

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

 

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

 

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

 

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

 

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

 

源的代码例如以下:

 

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

 适配器的代码例如以下:

 

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

 

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

 

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

仅贴出适配器代码:

 

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

 

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

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

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

 

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

接口类:

抽象类: 

实现类:

 

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

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

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

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


相关推荐

  • 树莓派 网络设置_树莓派4b教程

    树莓派 网络设置_树莓派4b教程概览你想做的第一件事一定是把你的树莓派连接到因特网上。在这节课里,你将会学到如何:使用网线连接到以太网在Raspbian和Occidentalis上使用无线网卡找到树莓派的IP地址使用有线网络最快的把树莓派接入到因特网的方法是使用一根以太网线把树莓派连接到你家的路由器上。当你把网线连入树莓派的时候,你就会看到网络LED灯开始闪烁了。对于大多数的家庭网络来说,你就不需要再做任何进一步的配置了。但为了…

    2025年11月11日
    3
  • RPC协议了解

    RPC协议了解1.RPC概述RPC(RemoteProcedureCallProtocol)远程过程调用协议。通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个过程或函数,就像调用本地应用程序中的一样。正确的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。2.RPC特点:2.1)RPC是协议:协议意味着规范。目前典型的RPC实现包括Dubbo、Thrift、Herrty等。但这些实现往往都会附加其他重要功能,例如Dubbo还包括服务管理、访问权限

    2022年5月19日
    63
  • pytest指定用例_测试用例怎么编写

    pytest指定用例_测试用例怎么编写前言测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果.有些同学在写用例的时候,用例写了先后顺序,有先后顺序后,后面还会有新的问题(如:上个用例返回

    2022年7月31日
    4
  • php服务器环境搭建_php和mysql怎么搭建网站

    php服务器环境搭建_php和mysql怎么搭建网站php环境搭建三、配置php环境1、同样php模块选择也是免安装版,直接解压到自己习惯的文件夹中配置即可,提醒站长在官网上下载的时候也要注意系统和VC环境支持。解压路径如下图:进入php的解压目录,找到php.ini-production或者php.ini-development任意一个,重命名为php.ini;然后将D:\php\ext和D:\php\加入到系统变量的环境变量PATH中,如下图:…

    2025年11月13日
    4
  • win10键锁定计算机,win10系统创建一键锁定计算机的快捷方式的操作方法

    win10键锁定计算机,win10系统创建一键锁定计算机的快捷方式的操作方法win10系统创建一键锁定计算机的快捷方式的操作方法?很多win10用户在使用电脑的时候,会发现win10系统创建一键锁定计算机的快捷方式的的现象,根据小编的调查并不是所有的朋友都知道win10系统创建一键锁定计算机的快捷方式的的问题怎么解决,不会的朋友也不用担心,下面我就给大家讲解一下win10系统创建一键锁定计算机的快捷方式的的少许解决办法,其实步骤很简单,只需要1、首先在桌面上的空白处鼠标右…

    2022年7月21日
    20
  • 分布式存储系统考虑因素-分区容错性[通俗易懂]

    分布式存储系统考虑因素-分区容错性[通俗易懂]分布式存储系统中的多台服务器通过网络进行连接。但是我们无法保证网络是一直通畅的,分布式系统需要具有一定的容错性来处理网络故障带来的问题。

    2022年7月25日
    5

发表回复

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

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