我试图在我的MVC解决方案中为一个简单的程序实现Observer-pattern时遇到问题,但是我不能让观察者像它应该那样通知“update”。 Theese是代码的相关部分,有一个第三类(Controller),它调用“spelarNamn”函数。 我测试了“spelarNamn”函数,我知道程序进入它,唯一的问题是它从不在View中输入更新函数。
public class Model extends Observable {
private String titel;
public static void main(String[]args){
Model model = new Model();
Controller controller = new Controller(model);
View view = new View(model, controller);
model.addObserver(view);
}
public void spelarNamn(String s1, String s2){
titel = s1 + " VS " + s2;
this.setChanged();
this.notifyObservers();
}
}
public class View implements Observer {
public void update(Observable o, Object x){
System.out.println("hi");
}
}
答案 0 :(得分:1)
控制器在添加Observer之前调用spelarNamn()方法。在控制器调用之前向上移动model.addObserver(view)。