简短问题
我想知道是否有任何关于为所有组件编写一个监听器实例或为每个组件编写一个实例的良好实践建议。
扩展问题
我正在开发一个 java swing 应用程序。
以相同的形式,我可以有十几个使用相同监听器类的组件(它们之间没有关系)。我在每个听众自己的类(class)中写下他们的内容。
监听器用于对组件上引入的数据进行一些验证。
我应该为每个组件创建一个监听器类的实例,还是应该为所有组件使用相同的监听器实例。
我找不到任何关于此的好的实践建议,除了this comment ,这并不指向任何引用。
最佳答案
对于 ActionListener
的特定情况,使用 Action
封装所需的功能。 。广use这个类在整个 Swing 中都表明了它的值(value)。这个简单example说明了一些内置文本组件操作;这个更详细example显示如何在菜单和工具栏之间共享操作。
替代方案是基于事件源的不断增长且难以维护的 if-then-else
梯子。
附录:啊,我误读了你的问题。 @安德鲁的comment是关于类;您的问题涉及实例。对于前者,单个听众往往会演变为 known anti-pattern ; example 的早期版本引用很能说明问题。对于后者,仅使用所需数量的实例;我通常会在分析器中发现最严重的违规行为。
关于java - 所有组件的一个 Listener 实例 每个组件一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12252106/