名称(和javadocs)表示MouseAdapter是适配器(设计模式)。但我不这么认为-至少一见钟情,它无法使任何事物适应任何事物

发生的唯一变化是,您可以将MouseAdapter的实例传递给需要任何一个接口(interface)的任何方法。因此,您可以使用仅需要MouseListenerMouseMotionListener实例。但是没有“翻译”发生。而且它不符合GoF的UML-在“类适配器”版本中,期望对一个方法的调用会从适配器中调用一个方法。

那么,这是一个适配器(设计模式),还是仅仅是一个引起混淆的随机名称?

最佳答案

MouseAdapter首次出现在Feb 1997中发布的Java 1.1中。这意味着它是在1996年(或1995年?)的某个时候开发的。

UML(在其草案中)为completed by 1997

GoF关于设计模式的第一本书是published in 1995

因此,我认为MouseAdapter中的Adapter与相应的设计模式无关。或者,即使这样做,开发人员也没有统一的语言来表达设计模式,这将使得很难理解其真正含义。

07-24 21:34