论坛首页 Java企业应用论坛

面试总结---适配器模式

浏览 24135 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (3)
作者 正文
   发表时间:2011-11-29  
给你举个例子

...
try{
   ....
}catch(DataAcessException dae){

    throw 自定义Excetion  !!!!
}

这个就是个简单的适配器 将DataAcessException  转化为 自定义的Exception
0 请登录后投票
   发表时间:2011-11-29  


该死的模式。

我觉得模式这种东西,真难说。像什么装饰器啊、适配器啊、代理啊,都是包装一下,从结构上讲都差不多,可能就是语义上不一样。唉,头疼。

0 请登录后投票
   发表时间:2011-11-29  
freish 写道
你能说素鸡也是鸡吗?


楼主这个比喻真是的太不恰当了 


素鸡是不是鸡我不知道。国产香蕉,进口香蕉都是香蕉,没什么不妥。缺省适配器模式不是模式,不能接受。也许我是一个不太懂得推翻别人想法的人,在或者说,我没那个水平。我还在学习。 在很多资料中很明确的说明了缺省适配器模式,如果真的有问题也只能去向创造出这个模式的人来说事了。
0 请登录后投票
   发表时间:2011-11-29  
适配器模式是解决类的接口无法匹配,无法在在一起工作,那么组合方式是主要处理,叫做对象适配器

变形很多,只有解决了接口不匹配,那么都可以叫适配器
可参考http://www.iteye.com/topic/586322

0 请登录后投票
   发表时间:2011-11-29  
why213344 写道
freish 写道
你能说素鸡也是鸡吗?


楼主这个比喻真是的太不恰当了 


素鸡是不是鸡我不知道。怪也怪在起素鸡的人没有水平。国产香蕉,进口香蕉都是香蕉,没什么不妥。缺省适配器模式不是模式,不能接受。明明就已经达到了适配的目地。也许我是一个不太懂得推翻别人想法的人,在或者说,我没那个水平。我还在学习。 在很多资料中很明确的说明了缺省适配器模式,如果真的有问题也只能去向创造出这个模式的人来说事了。


0 请登录后投票
   发表时间:2011-11-29  
yangguo 写道
wl95421 写道
其实MouseAdapter这个名字真是误导了,感觉叫AbstractMouseXXX可能更合适一些。
如果想了解Adapter这个模式,建议去看一下Eclipse的核心代码。
在此之前,我一直也无法正确理解这个模式。
大部分情况下,用到Adapter模式不会太多,主要处理一些未知情况,以及用来扩展,普通的项目中不太会用到,核心或者平台类的代码可能会用到。



正解。

大家仅仅是想学习一下,去看eclipse的核心代码这个范围是不是太大了。没有范文或者凡例吗?
0 请登录后投票
   发表时间:2011-11-29   最后修改:2011-11-29
缺省适配器模式是一种特殊的适配器模式,但这个适配器是由一个抽象类实现的,并且在抽象类中要实现目标接口中所规定的所有方法,但很多方法的实现都是“平庸”的实现,也就是说,这些方法都是空方法。而具体的子类都要继承此抽象类。
此类是不要被实例化的。而只充当适配器的角色,也就为其子类提供了一个共同的接口,但其子类又可以将精力只集中在其感兴趣的地方。
//An abstract adapter class for receiving container events
java.awt.event.ContainerAdapter;
java.awt.event.WindowAdapter;
....
.....
0 请登录后投票
   发表时间:2011-11-29  
楼主 我查了adapter模式,但是貌似只有类适配,对象适配模式,没有你说的缺省适配器模式。 但是我查缺省适配器模式的时候也能查到,因此我觉得缺省适配器模式不属于我们常说的设计模式吧。


然后我根据具体内容发现缺省适配器的作用跟adapter模式还是有很大差别的,其作用不可同日而语。。
0 请登录后投票
   发表时间:2011-11-29  
freish 写道
你能说素鸡也是鸡吗?


楼主这个比喻真是的太不恰当了 

+1
糯米鸡是鸡吗,哈
0 请登录后投票
   发表时间:2011-11-29   最后修改:2011-11-29
wl95421 写道
why213344 写道
wl95421 写道
其实MouseAdapter这个名字真是误导了,感觉叫AbstractMouseXXX可能更合适一些。
如果想了解Adapter这个模式,建议去看一下Eclipse的核心代码。
在此之前,我一直也无法正确理解这个模式。
大部分情况下,用到Adapter模式不会太多,主要处理一些未知情况,以及用来扩展,普通的项目中不太会用到,核心或者平台类的代码可能会用到。


兄弟,这名字没有什么问题,这确实是适配器模式。叫缺省适配器模式


怎么说呢,你可以看一下Eclipse中的Adapter那部分的设计,应该说很难和MouseAdapter扯上关系。
所以我不太认为MouseAdapter是合适的。

正常情况下,这种一般叫缺省实现比较合适一些,当然SWT中也有这种名字,我也觉得不太合适。
你看MouseAdapter的代码,完全就是空实现,我觉得叫它适配器模式太勉强了。

如果一定要说是缺省适配器模式,我也不能说对或错,毕竟模式这种东西是拿来用,而不是拿来争论的。
每个人对设计模式都有一个自己的观点。

顺便说一句,那个面试官,问题出的不是很好吧,关于设计模式的题目,最好还是具体的场景,比如让面试者谈谈在自己工作中用了哪些模式,解决哪些问题。


adapter主要体现的是处理类之间不匹配的问题,体现的是一种思想,与它是不是空实现的关系不大吧?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics