锁定老帖子 主题:面试总结---适配器模式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-29
给你举个例子
... try{ .... }catch(DataAcessException dae){ throw 自定义Excetion !!!! } 这个就是个简单的适配器 将DataAcessException 转化为 自定义的Exception |
|
返回顶楼 | |
发表时间:2011-11-29
该死的模式。 我觉得模式这种东西,真难说。像什么装饰器啊、适配器啊、代理啊,都是包装一下,从结构上讲都差不多,可能就是语义上不一样。唉,头疼。 |
|
返回顶楼 | |
发表时间:2011-11-29
freish 写道 你能说素鸡也是鸡吗?
楼主这个比喻真是的太不恰当了 素鸡是不是鸡我不知道。国产香蕉,进口香蕉都是香蕉,没什么不妥。缺省适配器模式不是模式,不能接受。也许我是一个不太懂得推翻别人想法的人,在或者说,我没那个水平。我还在学习。 在很多资料中很明确的说明了缺省适配器模式,如果真的有问题也只能去向创造出这个模式的人来说事了。 |
|
返回顶楼 | |
发表时间:2011-11-29
适配器模式是解决类的接口无法匹配,无法在在一起工作,那么组合方式是主要处理,叫做对象适配器
变形很多,只有解决了接口不匹配,那么都可以叫适配器 可参考http://www.iteye.com/topic/586322 |
|
返回顶楼 | |
发表时间:2011-11-29
why213344 写道 freish 写道 你能说素鸡也是鸡吗?
楼主这个比喻真是的太不恰当了 素鸡是不是鸡我不知道。怪也怪在起素鸡的人没有水平。国产香蕉,进口香蕉都是香蕉,没什么不妥。缺省适配器模式不是模式,不能接受。明明就已经达到了适配的目地。也许我是一个不太懂得推翻别人想法的人,在或者说,我没那个水平。我还在学习。 在很多资料中很明确的说明了缺省适配器模式,如果真的有问题也只能去向创造出这个模式的人来说事了。 |
|
返回顶楼 | |
发表时间:2011-11-29
yangguo 写道 wl95421 写道 其实MouseAdapter这个名字真是误导了,感觉叫AbstractMouseXXX可能更合适一些。
如果想了解Adapter这个模式,建议去看一下Eclipse的核心代码。 在此之前,我一直也无法正确理解这个模式。 大部分情况下,用到Adapter模式不会太多,主要处理一些未知情况,以及用来扩展,普通的项目中不太会用到,核心或者平台类的代码可能会用到。 正解。 大家仅仅是想学习一下,去看eclipse的核心代码这个范围是不是太大了。没有范文或者凡例吗? |
|
返回顶楼 | |
发表时间:2011-11-29
最后修改:2011-11-29
缺省适配器模式是一种特殊的适配器模式,但这个适配器是由一个抽象类实现的,并且在抽象类中要实现目标接口中所规定的所有方法,但很多方法的实现都是“平庸”的实现,也就是说,这些方法都是空方法。而具体的子类都要继承此抽象类。
此类是不要被实例化的。而只充当适配器的角色,也就为其子类提供了一个共同的接口,但其子类又可以将精力只集中在其感兴趣的地方。 //An abstract adapter class for receiving container events java.awt.event.ContainerAdapter; java.awt.event.WindowAdapter; .... ..... |
|
返回顶楼 | |
发表时间:2011-11-29
楼主 我查了adapter模式,但是貌似只有类适配,对象适配模式,没有你说的缺省适配器模式。 但是我查缺省适配器模式的时候也能查到,因此我觉得缺省适配器模式不属于我们常说的设计模式吧。
然后我根据具体内容发现缺省适配器的作用跟adapter模式还是有很大差别的,其作用不可同日而语。。 |
|
返回顶楼 | |
发表时间:2011-11-29
freish 写道 你能说素鸡也是鸡吗?
楼主这个比喻真是的太不恰当了 +1 糯米鸡是鸡吗,哈 |
|
返回顶楼 | |
发表时间:2011-11-29
最后修改:2011-11-29
wl95421 写道 why213344 写道 wl95421 写道 其实MouseAdapter这个名字真是误导了,感觉叫AbstractMouseXXX可能更合适一些。
如果想了解Adapter这个模式,建议去看一下Eclipse的核心代码。 在此之前,我一直也无法正确理解这个模式。 大部分情况下,用到Adapter模式不会太多,主要处理一些未知情况,以及用来扩展,普通的项目中不太会用到,核心或者平台类的代码可能会用到。 兄弟,这名字没有什么问题,这确实是适配器模式。叫缺省适配器模式 怎么说呢,你可以看一下Eclipse中的Adapter那部分的设计,应该说很难和MouseAdapter扯上关系。 所以我不太认为MouseAdapter是合适的。 正常情况下,这种一般叫缺省实现比较合适一些,当然SWT中也有这种名字,我也觉得不太合适。 你看MouseAdapter的代码,完全就是空实现,我觉得叫它适配器模式太勉强了。 如果一定要说是缺省适配器模式,我也不能说对或错,毕竟模式这种东西是拿来用,而不是拿来争论的。 每个人对设计模式都有一个自己的观点。 顺便说一句,那个面试官,问题出的不是很好吧,关于设计模式的题目,最好还是具体的场景,比如让面试者谈谈在自己工作中用了哪些模式,解决哪些问题。 adapter主要体现的是处理类之间不匹配的问题,体现的是一种思想,与它是不是空实现的关系不大吧? |
|
返回顶楼 | |