我正在为一项作业重构一些代码 - 目前该视图有很多按钮和菜单以及一个操作侦听器,该侦听器通过使用 event.getSource() 来决定要执行的操作。从我读到的内容来看,人们似乎认为每个 GUI 组件最好都有自己的动作侦听器,也许是通过某种工厂创建的。然而,除了稍微清理一下代码之外,这还有什么其他好处——这是否意味着堆上将有更多的对象并可能影响性能?

谢谢,

阿里

有帮助吗?

解决方案

使用单独的侦听器意味着您不需要执行布尔测试来确定侦听器中应执行的操作。这有两个好处

  • 首先,它使代码运行得更快一些。

  • 其次,它增强了代码的可维护性和可扩展性。如果需要添加新组件,则无需修改现有方法。

如果您尝试让一个侦听器(通常是小程序或应用程序对象本身)充当多个组件的侦听器,那么您将撤消对于调用方法至关重要的基本调度,并手动实现调度。这需要使用某种切换机制来区分您正在处理其事件的各个组件。该系统比您更有能力做到这一点。随着程序的增长,这种开关结构既容易出错,又难以维护。将调度留给系统。

来源: Java 事件的模式

其他提示

这是一个折衷。与一群在源上if的代码被认为是难看的,而听众的质量可弄乱您存储器和对性能有负面影响。

如果可以选择,我一般去我必须写,因为更少的代码通常意味着更少的机会,错误的代码量减少了什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top