适配器模式

参考书籍: 阎老师的 《java与模式》
网络文章:《追mm与java的23个模式》 www.linuxmine.com/44779.html 

标题:适配器模式
----------------------------------------我是分割线--------------------------------------------------
定义:把一个类的接口变换成客户端所期待的另外一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作

适配器模式主要是两种实现:
1.基本类的实现  也就是通过继承来实现
这种实现里面有三个元素
1.目标 也就是最终要实现的方面  这里主要是接口
2.源 提供目标接口里面的实现  可以是全部 也可以使部分 但是一定是和适配器互补
3.适配器.实现目标里面的所有实现 如果自己没有 继承源类的实现

所以从上可以 这种实现是基于类的继承来实现的 所以叫作基于类的实现

2基于对象的实现 也就是通过聚合来实现
1.目标 和类的实现是一样 接口
2.源 和类的实现一样 类 对于接口的方面部分实现
3.适配器  实现目标里面的实现  如果没有 通过使用源来实现  但是此时的源是适配器的一部分

所以此种是基于对象的实现,

从以上连个分析可以看出 适配器模式的两种实现 主要是适配器自己的不同  如果是继承源类就是基于类的实现
如果是聚合源对象  就是一种对象的实现

在实际的使用中 个人觉得基于对象的使用的比较多 这个也和java的尽量使用 聚合不要使用继承的思想一致

----------------------------------我是分割线--------------------------------------------------------
带过:缺省适配器模式
1.目标:一个有很多定义功能的接口
2.适配器 一个类实现接口的所有方法 部分实现平庸实现 往往这个类一个抽象方法


出来这个原因: 主要应用有这种需求 一个类(适配器)只想实现目标的部分方法,而其他的方法都只能通过平庸实现来解决

个人觉得 这种是非常不好的 也是没有办法的办法
阎老师在书中说到:在什么情况下使用此模式
"在任何时候 如果不准备实现一个接口的所有方法的时候,就可以使用该适配器 制造一个抽象类,给出所有的方法的平庸的具体实现。这样 从这个抽象类继承下去的子类就不必实现所有的方法了。“
”适配器模式的“平庸化”模式可以使所考察的类不比实现不需要的那部分接口"
----------无敌分割线--------------------
引用:
6、ADAPTER―在朋友聚会上碰到了一个美女Sarah,从香港来的,可我不会说粤语,她不会说普通话,只好求助于我的朋友kent了,他作为我和Sarah之间的Adapter,让我和Sarah可以相互交谈了(也不知道他会不会耍我)

适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端。
--------无敌分割线------------------------
此时 我的朋友kent就是适配器
此时的目标是由说普通话 和说粤语的方法
此时sarah 和我 就可以交谈了。
但是在这个里面并没有描述 采用的适配器模式的那种实现

其实 此时 我和sarah都是一个适配器 因为有kent在 
我就相当于会说普通话 又会说粤语 我和sarah都是是基于对象的适配器

-----------分割线------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值