我已阅读有关PropertyChange 支持和EventListenerList的文档。list of listeners
据我了解,两者在持有 a和发生notifying
时都有相似的目的event/propertyChange
。是否只有在 的情况下才会GUI applications
变得EventListenerList
方便?JavaBean
对于不使用的简单应用程序,GUI components
使用其中一个是否有优势。
2 回答
一般来说,PropertyChangeEvent
当对象的某些属性值发生变化时(您可以读取的属性/值),其中(一般)事件可以描述任何类型的事件(例如选择更改或鼠标单击),它就会发生不必表示对象状态的变化
PropertyChangeSupport
是 bean 框架(特别是但不限于)GUI 编辑器的一部分。这并不意味着您不能使用它,事实上,许多对象都依赖于此功能,例如SwingWorker
SwingLabs 中的许多对象。
考虑到这一点,您应该ProperyChangeSupport
在想要通知相关方对象的属性/值发生更改以及EventListenerList
想要为对象内发生的事情提供一般事件通知时使用(但不必相关)到特定的财产或州)
我遇到的唯一问题ProptertyChanegSupport
是,哪些属性是绑定的,哪些不是,有时很难开始使用新对象,因为查找所有“addListener”方法相当容易,但那是只有我
虽然我确定 a 的初衷是用于 GUI,但我以前曾将它们用于非 GUI 工作,但如果您只支持单个侦听器,EventListenrerList
您可能会发现使用 a 更容易,只是说List
由于PropertyChangeListener只是EventListener的一个特定“子类”(扩展接口)——它是一个标记接口并且不定义任何方法,因此使用PropertyChangeSupport比使用 EventListenerList更容易——那是因为如果你从 EventListenerList 开始,你会需要始终进行 instanceof 检查和强制转换以获取侦听器的实际“业务”方法(因为它们都实现的接口没有方法)