MVC模式希望Model将状态事件更改为View。 如果Model是一个带有setter和getter方法的简单javabean,那么这个comunication的最佳实现是什么?
答案 0 :(得分:3)
在你的bean中,允许注册PropertyChangeListener,它是指定的观察者类,用于java bean的更改通知。
具有PropertyChangeListener支持的示例bean:
public class TestBean {
private transient final List<PropertyChangeListener> listeners = new ArrayList<PropertyChangeListener>();
private String name;
public void addPropertyChangeListener (PropertyChangeListener listener) {
listeners.add(listener);
}
public void removePropertyChangeListener (PropertyChangeListener listener) {
listeners.remove(listener);
}
private void firePropertyChange (String property, Object oldValue, Object newValue) {
if (oldValue == newValue || oldValue != null && oldValue.equals(newValue)) {
return;
}
PropertyChangeEvent evt = new PropertyChangeEvent(this, property, oldValue, newValue);
for (PropertyChangeListener listener : new ArrayList<PropertyChangeListener>(listeners)) {
listener.propertyChange(evt);
}
}
public String getName () {
return name;
}
public void setName (String name) {
firePropertyChange("name", this.name, this.name = name);
}
}
答案 1 :(得分:1)
查看Observer Pattern以了解模型和视图之间的通信。模型应为Observable,视图应为Observer。