名称(和javadocs)表示MouseAdapter
是适配器(设计模式)。但我不这么认为-至少一见钟情,它无法使任何事物适应任何事物
发生的唯一变化是,您可以将MouseAdapter
的实例传递给需要任何一个接口(interface)的任何方法。因此,您可以使用仅需要MouseListener
的MouseMotionListener
实例。但是没有“翻译”发生。而且它不符合GoF的UML-在“类适配器”版本中,期望对一个方法的调用会从适配器中调用一个方法。
那么,这是一个适配器(设计模式),还是仅仅是一个引起混淆的随机名称?
最佳答案
MouseAdapter
首次出现在Feb 1997中发布的Java 1.1中。这意味着它是在1996年(或1995年?)的某个时候开发的。
UML(在其草案中)为completed by 1997。
GoF关于设计模式的第一本书是published in 1995。
因此,我认为MouseAdapter
中的Adapter与相应的设计模式无关。或者,即使这样做,开发人员也没有统一的语言来表达设计模式,这将使得很难理解其真正含义。