Java模式(适配器模式)

Java模式(适配器模式)

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

 

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

 

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

 

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

 

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

 

源的代码例如以下:

 

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

 适配器的代码例如以下:

 

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

 

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

 

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

仅贴出适配器代码:

 

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

 

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

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

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

 

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

接口类:

抽象类: 

实现类:

 

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Stata做空间杜宾模型、莫兰指数等操作

    Stata做空间杜宾模型、莫兰指数等操作以下内容完全由本人在实际操作中搜集整理总结得到,很细致的介绍:从如何在stata中导入数据,怎么定义面板数据,再到如何做局部和全局空间相关性检验(莫兰指数)和空间杜宾模型等。1、导入面板数据在excel中输入如下格式的数据:打开STATA,data-dataeditor-dataeditor(edit),将excel中数据复制上去接着在STATA主界面的comm…

  • python怎么读取excel文件_python如何读取文件夹下的所有文件

    python怎么读取excel文件_python如何读取文件夹下的所有文件python读取excel文件如何进行python编程语言拥有着比较强大的excel读写能力,我们只需要安装xlrd,xlwt这两个库就可以了。那么python读取excel文件如何进行,今天就为大家分享下python读取excel文件的具体操作方法,快来了解下吧!1、首先说明我是使用的python3.5,我的office版本是2010,首先打开dos命令窗,安装必须的两个库,命令是:pip3installxlrdPip3installxlwt2、准备好excel,例如我的一个工作文件,我

  • 用示波器调出李萨如图形步骤_示波器李萨如图形不稳定怎么调节

    用示波器调出李萨如图形步骤_示波器李萨如图形不稳定怎么调节1.首先我们需要校准接通电源打开仪器准备校准2.接好两根线3调节得到方波和三角波4调节频率得到李萨如图形示波器的使用

  • Windows搭建Ldap服务器

    Windows搭建Ldap服务器Windows搭建Ldap服务器RerferenceSofewareLdapServer安装包openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exeLdap客户端LdapAdmin.exe安装一路next到install即可。配置文件1slapd.conf2找到include./schema/c

  • android 分区丢失,分区数据恢复

    android 分区丢失,分区数据恢复作者:SelenaKomez5月23,2018上更新总结:硬盘分区被删除或丢失?如何取回已删除或丢失的分区?数据恢复软件将帮助您恢复数据,即使在Windows或Mac计算机上删除或丢失分区。执行分区数据恢复不需要任何技术技能。硬盘分为一个或多个逻辑分区,以便更好地进行资源管理,并根据用户要求将数据分布在不同的位置。这些逻辑分区称为分区,并给出了某些独立硬盘协调工作的错觉。但是,计算机分…

  • 【STM32】NVIC中断优先级管理(中断向量表)

    【STM32】NVIC中断优先级管理(中断向量表)STM32F1xx官方资料:《STM32中文参考手册V10》-第9章中断和事件Cortex-M3内核支持256个中断,其中包含了16个内核中断(异常)和240个外部中断,并且具有256级的可编程中断设置。但是,STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断(异常)和68个可屏蔽中断,具有16级可编程的中断优先级。而STM32F10…

发表回复

您的电子邮箱地址不会被公开。

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