java - 为什么 MouseAdapter 是适配器?

标签 java design-patterns

名称(和 javadoc)暗示 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 与相应的设计模式没有任何关系。或者,即使有,开发人员也没有统一的语言来表达设计模式,这将导致很难理解真正的含义。

关于java - 为什么 MouseAdapter 是适配器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9244185/

相关文章:

design-patterns - 订阅管理逻辑

java-如何生成指定值范围内的随机十六进制值

java - 如何在 propertyConfigurer bean 中引用 ${ENV} var?

java - 以接口(interface)作为参数的方法

java - 无法在 JPanel 上移动 JLabel

design-patterns - 口齿不清 : dynamic scope vs explicit parameter passing

c# - 属性初始化反模式

java - 如何在 Spring Boot 应用程序中更改 BIRT 创建的图像文件的位置

java - Guice @Singleton 必须遵循 Singleton 设计模式吗?

c++ - 配置工厂构建的对象的正确模式