我們正在開發使用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,如果這有什麼區別。