如果发生事件,请通知应用程序的不同部分

时间:2016-11-26 14:16:33

标签: java event-driven-design

我有一个onclick事件,我需要根据服务器响应更新网页上的一些视图。使用侦听器和处理程序实现此目的的最佳方法是什么?我认为我应该创建clickListener并将其映射到一个按钮,但我不知道如何通知视图它们应该呈现一些数据。 例如,我有一个演示者(称为Presenter)和3个视图(View1,View2,View3)。第一种方法是做这样的事情:

public class Presenter {
    private View1 view1;
    private View3 view2;
    private View3 view3;
    private Button button;
    protected void doSmth() {
        button.setClickListener(new ClickListener() {
            view1.update();
            view2.update();
            view3.update();
        });
    }

}

但这显然是糟糕的做法。 (我认为)好的方法是做下一步:

public class Presenter {
    private Button button;
    protected void doSmth() {
        button.setClickListener(new ClickListener() {
            //push object that will trigger handlers in views.
        });
}
//this is the same for all views
public class View {
    protected void handleClickInPresenter() {
    //render the data
    }
}

但我无法理解如何实现这种方式。请求你的帮助。谢谢。

0 个答案:

没有答案