论坛首页 Java企业应用论坛

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

浏览 24132 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (3)
作者 正文
   发表时间:2011-11-29   最后修改:2011-11-29
  回复的真好啊。大家都发挥自己的想法多好啊。
我在表达一下我的想法,技术的更新换代。包括语言的层出不穷。按GOF上的规定可能确实是没有这个适配器,所以我强调了一下java设计模式。我感觉我们的思想应该活起来。至少像阎宏一样。打破这总陈规。

缺省适配器应该属于这 ---》类的Adapter Pattern(继承) 
对象的Adapter Pattern(委托)
0 请登录后投票
   发表时间:2011-11-29  
我倒不是说具体一个模式取什么名字很重要。
但感觉MouseAdapter这种方式很容易误导,如果有时间,大家还是去看一下那些Eclipse的类。
顺便提一句,GoF中的Erich Gamma也在Eclipse中工作。
0 请登录后投票
   发表时间:2011-11-29  
每种模式都有它合适使用的场景。

Adapter,一种典型的用法,就是原来老系统中有一个类,比如叫OldClass,现在新系统重新设计中有一个接口,与老的接口不兼容,旧类OldClass 如果修改实现这个接口,可能导致一些不需要入侵,比如在新系统根本不使用的方法, 会让这个类臃肿不堪等。

这时创造一个新类 Adaptee 实现新的接口,直接注入 OldClass,利用OldClass一些方法实现新接口。
0 请登录后投票
   发表时间:2011-11-29  
简单来讲,比如你需要18伏的电源给你的手机充电,但你家的交流电是220伏的,怎么办呢?这个时候你会使用一个充电器,这个充电器可以接受220伏的电压,同时可以作为 一个18伏的电源给你手机电池充电,那么这个充电器就是一个适配器(电源适配器),当然我们也可以认为满足这种需求的代码设计就是适配器模式。
0 请登录后投票
   发表时间:2011-11-30  
lanzhongzzl 写道
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。——Gang of Four
以上是四人帮的原话。

其实适配器模式在项目中经常用到,例如客户在接口中定义了他期望的方法,我们就可以写一个类实现客户的接口,并且包含我们的类的引用来实现。这就是一个简单的适配器模式应用。


是这么个意思
0 请登录后投票
   发表时间:2011-11-30  
telemessage 写道
简单来讲,比如你需要18伏的电源给你的手机充电,但你家的交流电是220伏的,怎么办呢?这个时候你会使用一个充电器,这个充电器可以接受220伏的电压,同时可以作为 一个18伏的电源给你手机电池充电,那么这个充电器就是一个适配器(电源适配器),当然我们也可以认为满足这种需求的代码设计就是适配器模式。


补充:对于程序设计人员来说,仅知道适配器这类概念还不够,还需要知道这类概念的通用实现方法。 最好是基于面向对象的普遍特性。


0 请登录后投票
   发表时间:2011-11-30  
C++这种有private继承的才有了类适配器的这种设计。
0 请登录后投票
   发表时间:2011-11-30  
首先说明,就事论事。

1 面试者的片面之辞,不能把面试官一棒子打死。你说面试官拿自己会的问就是装的话,那么我请问,面试官面试应聘者的目的是“考你”,还是“请教你”?这很重要,决定你说的他该问什么问题
2 望文生义,不是叫Adapter就是适配器模式,所以傅彪演得面瓜不是瓜;
3 接触模式也好几年了,GOF的23模式读过,研究不深,但据我所了解的缺省适配器模式是阎宏杜撰的。
4 模式的目的是总结开发中的规律,复杂问题简单化;而所谓default adapter只是给JAVA语言规范——继承(override特性)起了一个别名,有何意义?简单问题复杂化。
5 可以肯定的是,不是只有GOF的23模式才是模式,所有可以归纳的都可以是模式。可以是公认的模式,也可以是一个人的模式。

说白了,面试官不认可阎宏的JAVA继承(override特性)模式。
0 请登录后投票
   发表时间:2011-12-01  
引用
面试者的片面之辞,不能把面试官一棒子打死。你说面试官拿自己会的问就是装的话,那么我请问,面试官面试应聘者的目的是“考你”,还是“请教你”?这很重要,决定你说的他该问什么问题


我不太认为面试官就是在考一个面试人员,面试是双方的,我觉得面试别人,是需要发掘出他的优点,看是否合适相应的职位,所以我面试别人的时候,更喜欢让对方来陈述自己的长处,然后再针对长处发问,而不仅仅是自己的角度出发来提具体的问题,这样很容易误杀。
0 请登录后投票
   发表时间:2011-12-01  
redhat 写道
很多人不懂模式,可以说90%的人员,99%的人员不知道OO,但是他们都觉得自己很懂,导致这样的现状。
真正懂OO的,目前还没有遇见过。



你的意思是你能分辨出别人是否懂oo,那么意味着你懂oo?
0 请登录后投票
论坛首页 Java企业应用版

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