Java Observer模式没有调用更新函数

时间:2014-08-26 19:53:12

标签: java model-view-controller observer-pattern

我试图在我的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");
}
}

1 个答案:

答案 0 :(得分:1)

控制器在添加Observer之前调用spelarNamn()方法。在控制器调用之前向上移动model.addObserver(view)。