【发布时间】:2017-11-12 23:08:07
【问题描述】:
明确地说,我不是在询问在我的程序中使用哪种设计模式。我问的是在创建 Swing 库和其中使用的事件系统时使用了哪种设计模式。我目前正在攻读信息技术学士,其中一个试题要求我描述摇摆中使用的事件模型,然后继续详细说明使用的具体模式是责任链设计模式。然而,在做了一些研究之后,我偶然发现了这篇文章:
https://www.developer.com/java/data/understanding-and-using-the-java-delegation-event-model.html
其中指出,从 Java 1.1 开始(我们现在已经达到 Java 8,几乎是 Java 9),事件处理的方法是基于“委托事件模型”。然而,虽然这篇文章的日期是 2016 年 11 月 9 日,但它让我怀疑其内容的有效性,因此这里提出了问题。我希望一些更有经验的程序员能给出一个最新的、具体的答案。
【问题讨论】:
-
也许你能找到some information here。
-
Swing 使用Event Dispatching Thread (EDT)。
-
根据 EDT 上的那篇文章,它使用了 Worker 设计模式,这是我以前没有遇到过的一种。我怀疑我们是否必须为考试详细介绍,但是出于个人好奇的原因,我想看看这到底能走多远。
-
检查每个
JComponent持有的EventListenerListhere。 -
它使用 MVC,观察者模式,可能有一个或两个工厂模式,也许在某个地方有一个构建器模式。没有“单一”模式在起作用
标签: java swing event-handling