我有一个接口 - “EventHandler” - 它声明了几种方法。这是一个真正的适配器模式的例子吗?
public interface EventHandler {
void handleEvent1();
void handleEvent2();
void handleEvent3();
void handleEvent4();
}
我也有一类 - “EventHandlerAdapter” - 实现事件处理程序。但是,它实际上并没有“实施”任何东西。重点是,如果另一个类想要实现EventHandler,但不是所有的方法,它可以简单地扩展EventHandlerAdapter并且只覆盖它想要的方法。
public class EventHandlerAdapter implements EventHandler {
public void handleEvent1() {}
public void handleEvent2() {}
public void handleEvent3() {}
public void handleEvent4() {}
}
我见过这样的事情在不止一个场合。名称“EventHandlerAdapter”向我暗示它是适配器模式的一个例子......但是它是真的吗?我认为适配器的要点是将现有的实现转换为其他东西。我不明白这是怎么回事。
如果它不是适配器模式的例子,它是什么?当然,这样的事情已经确定。
是的,一致性是件好事;) – Bozho 2010-08-24 13:39:34
经过一番思考,我决定像“AbstractEventHandler”这样的东西更合适。它可能不一致,但实际上,Java API本身是否一致? – someguy 2010-08-24 13:44:38
@someguy,名称Abstract *暗示该类是'abstract',因此它必须被继承以便被使用。例如。 Java集合框架包含几个这样的类。在这种情况下,该类可以按原样使用,并且它可以被分类。所以对我来说这个名字会让人误解。 – 2010-08-24 13:52:05