java - 关于委托(delegate)-事件-模型模式中的监听器

标签 java

您好,我有一个关于使用此模式的问题。在制作监听器时,方法的名称应该是模型中触发事件的方法的名称吗?如:

(说明我的意思的小例子) 型号:

public void setName(String name) {...}
public void setAge(int age) {...}

监听器

void nameChanged(TheEventObject event);
void ageChanged(TheEventObject event);

或者应该这样:

void personChanged(The EventObject event);

其中人称前缀是模型类的名称。

回顾一下,接口(interface)中的方法应该针对每个更改模型中某些值的特定方法,还是应该只是说“嘿,模型已更改”?

最佳答案

我认为 future 更容易的是以另一种方式在一些父抽象类中创建,每个都将被传递,你可以创建一些类的实例来管理通知类型的属性更改管理器(观察者)将在属性更改后触发事件。

firePropertyChange("properyName", newValue, oldValue); 

要支持这一点,您可以使用 java.beans.PropertyChangeEvent

属性更改观察器的基本接口(interface):

void fireBeforePropertyChange(String propertyName, Object currentValue, Object newValue) throws PropertyChangeException;
void removeBeforePropertyChangeListener(BeforePropertyChangeListener beforePropertyChangeListener);
Enumeration<BeforePropertyChangeListener> getBegorePropertyChangeListeners();

关于java - 关于委托(delegate)-事件-模型模式中的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6174630/

相关文章:

java - AEM 6.0 的 OSGi bundle 中部署的包的状态为 Activity 但使用情况存在问题

java - 名为 'Flutter' 的文件已存在于此位置

java - 如何在java中的文本字段上显示输出?

java - 数组元素具有空字段

java - @OneToOne 作为 ManyToOneType 返回

java.lang.IllegalArgumentException : This source was already added with the different observer 异常

java - 二维数组列表

java - 为什么java内部函数还有代码?

Java从列表中查找部分匹配的字符串

java - MapReduce中是否可以在同一个键下输出多个值?