我们正在开发使用MVP模式的应用程序,如本指南中描述:如何处理GWT MVP体系结构中的服务和事件总线实例?
http://code.google.com/webtoolkit/articles/mvp-architecture.html
当创建我们做的控制器实例如下:
appController = new AppController(service, eventBus);
appController.go(RootPanel.get("SOME_SLOT"));
现在,当控制器创建某个主持人,它做这样的事情:
sthPresenter = new SthPresenter(service, eventBus, new SthView());
sthPresenter.go();
演示者比保存事件总线和对私有字段变量的服务,并根据需要使用。
随着应用程序的增长,我们有越来越多的演示者和视图,所以问题是我们可以使用不同的方法在演示者中获取服务和eventBus,而不必通过每个演示者的构造函数传递引用。
例如,在控制器中创建一个静态字段,并使用类似AppController.getService()的方法调用它。也许是单身模式。
控制器(或其他地方)的静态字段对于这种设计是一个坏主意。请记住,代码编译为JavaScript,如果这有什么区别。