Java 关于委派事件模型模式中的侦听器

Java 关于委派事件模型模式中的侦听器,java,Java,嗨,我有一个关于使用这种模式的问题。创建侦听器时,方法的名称应该是触发事件的模型中方法的名称吗?例如: (一个简单的例子说明了我的意思) 型号: public void setName(String name) {...} public void setAge(int age) {...} void nameChanged(TheEventObject event); void ageChanged(TheEventObject event); 听众 public void setName(

嗨,我有一个关于使用这种模式的问题。创建侦听器时,方法的名称应该是触发事件的模型中方法的名称吗?例如:

(一个简单的例子说明了我的意思) 型号:

public void setName(String name) {...}
public void setAge(int age) {...}
void nameChanged(TheEventObject event);
void ageChanged(TheEventObject event);
听众

public void setName(String name) {...}
public void setAge(int age) {...}
void nameChanged(TheEventObject event);
void ageChanged(TheEventObject event);
或者应该是:

void personChanged(The EventObject event);
其中,person前缀是模型类的名称


回顾一下,接口中的方法是针对每个改变了模型中某些值的特定方法,还是仅仅是一个说“嘿,模型改变了”的方法?

我认为未来更容易的方法是以另一种方式在每个已交付的父抽象类中创建,您可以创建某个类的实例,该类将管理通知类型的属性更改管理器(观察者),该属性更改后将触发事件

firePropertyChange("properyName", newValue, oldValue); 
要支持这一点,可以使用
java.beans.PropertyChangeEvent

属性更改观察者的基本界面:

void fireBeforePropertyChange(String propertyName, Object currentValue, Object newValue) throws PropertyChangeException;
void removeBeforePropertyChangeListener(BeforePropertyChangeListener beforePropertyChangeListener);
Enumeration<BeforePropertyChangeListener> getBegorePropertyChangeListeners();
void fireBeforePropertyChange(字符串propertyName、对象currentValue、对象newValue)抛出PropertyChangeException;
void removeBeforePropertyChangeListener(BeforePropertyChangeListener BeforePropertyChangeListener);
枚举getBegorePropertyChangeListeners();

这取决于ventobject包含的内容。它是否有一种方法来确定发生了什么变化?在这个时刻,我为每个改变模型中某些内容的方法创建了listener方法。但是,如果我只有一个通用的model has change方法,那么只添加一个实例变量或者一些指示发生了什么变化的内容就可以了吗?这些“方法”中哪一种是最常用的。我认为这是一个设计决策。如果您将“person”对象视为一个复杂的源,我将坚持使用personChanged(…);否则,此人只是一个数据容器,更详细的侦听器可能是明智的,因为您可能根本不关心“整个人”。。。只是我的想法^^@Skaffman&@Gruber:谢谢!非常有用