【发布时间】:2011-05-02 16:56:37
【问题描述】:
在Java中,我们有两种方式来实现actionPerformed:
- 每个类一个 actionPerformed 方法:使用 if-else 检查事件源;
- 使用匿名内部类并在创建该对象的位置实现 actionPerformed 方法;
对于选项 1,很容易跟踪 actionPerformed 代码的位置,因为每个类只有一个方法。我们可以轻松找到该方法,然后查看内部以找到我们正在寻找的代码。但是,如果我们有很多动作监听器,可能会有太多的 if-else 子句。
对于选项 2,不容易找到 actionPerformed 代码的位置,因为它分散在整个类中。如果您有许多动作侦听器,则跟踪 actionPerformed 实例将更加困难。
我个人更喜欢选项1,因为它更容易维护代码,甚至性能可能不如选项2。
每种方法的优缺点是什么?在选择如何实现 actionPerformed 时还应该考虑什么?你更喜欢哪种方式?
编辑:
所以根据下面 A. Lee 的建议,有第三个选项。 它是选项 1 和选项 2 的组合:使用匿名内部类,但将它们完全放在类中的一个位置。 我认为这是个好主意。
【问题讨论】:
-
可能类似的话题(今天)stackoverflow.com/questions/5856083/…
-
如果你想被困在程序编码器中,请选择 1 ;-) 对于 OO 来说,这是不可能的
-
为什么选项 2 是 OO 而选项 1 不是?因为选项 2 将所有代码放在一起并且可以轻松复制到另一个地方?还是因为我们将动作与对象分开了?
-
仔细阅读 - 我没有说 2 是 OO ;-)
标签: java