关于委托 - 事件 - 模型模式中的侦听器

时间:2011-05-30 09:43:12

标签: java

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

(显示我的意思的琐碎例子) 型号:

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

听众

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

或者应该是:

void personChanged(The EventObject event);

其中person-prefix是Model类的名称。

如果接口中的方法是针对每个在模型中改变某些值的特定方法,或者它应该只是一个“嘿,模型已更改”的话,那么回顾一下?

1 个答案:

答案 0 :(得分:1)

我认为未来更容易在另一种方式中创建每个将被传递的父抽象类,您可以创建一个类的实例来管理属性更改管理器(观察者)的通知类型财产变更后会引发事件。

firePropertyChange("properyName", newValue, oldValue); 

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

属性更改观察者的基础接口:

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