我一直在研究GWT和MVP最近,說實話我很困惑。我的項目將包括大約40個不同的地方或一起瀏覽。在閱讀多個教程時,一些人遵循Model-View-Presenter和其他人使用活動和場所,所有這些都是以MVP,GWT爲主題的。MVP或活動和地方,爲GWT 2.2
我不確定爲什麼要遵循一個新的MVP,GWT 2.2項目。
非常感謝, 亞歷
我一直在研究GWT和MVP最近,說實話我很困惑。我的項目將包括大約40個不同的地方或一起瀏覽。在閱讀多個教程時,一些人遵循Model-View-Presenter和其他人使用活動和場所,所有這些都是以MVP,GWT爲主題的。MVP或活動和地方,爲GWT 2.2
我不確定爲什麼要遵循一個新的MVP,GWT 2.2項目。
非常感謝, 亞歷
Alex,
活動和場所是谷歌實施的MVP框架。 GWT有許多已經建立起來的附加MVP框架,其中包含許多尚未納入GWT的附加功能。這兩個我建議是:
GWT平臺:http://code.google.com/p/gwt-platform/
MVP4G:http://code.google.com/p/mvp4g/
他們有許多額外的功能,以減少你必須寫來實現解決方案的樣板代碼量。他們是值得峯值選擇谷歌的一個& P.
乾杯 基因
活動和地點是在GWT 2.2中實現的MVP的解決方案。在此之前,MVP只是推薦的方法,沒有Google提供的官方框架。這就是爲什麼你會感到困惑。
我建議你堅持使用Activities和Places,因爲它是MVP的官方Google解決方案。
我希望它有幫助。
亞歷克斯,
活動和地點(以及ActivityMapper和更多)是其中GWT團隊提供給他們正式較早MVP模式的建議類。前一段時間,我嘗試了「原始」MVP建議,目前正在使用上述類提供的更高級別的方法。使用新類肯定會更容易。除了良好的MVP抽象外,您還可以免費獲得在應用程序中處理瀏覽器歷史導航的重要方面。
MVP API在這裏停留,看起來如此,如果您使用的是GWT 2.2.x,我還建議您在項目開始時使用新的MVP類。
事實證明Activity
在MVP設計模式中扮演了Presenter的角色。不是所有的演示者都需要活動,但是如果你有一個Activity
,你可以把它看作是一種特殊的演示者,具有明確的生命週期,用於從一個「地點」轉換到另一個「地點」。
所以這不是MVP和「活動&地方」之間的選擇。相反,他們都是一樣的想法。新的活動&地方框架只是一個改進。
活動和地點都不是MVP框架之前! Google在後面的文檔中刪除了這種「干擾」。它只是一個瀏覽器歷史框架(用於輕鬆(反)序列化應用程序的狀態)。但是在實施MVP和使用A時,事實證明,在許多情況下,合併活動和主持人是一個不錯的主意。
在更一般的情況下,一個活動可以開始n個演示者。
在我們的設計中,我們使用了活動和場地以及演示者。我們也使用MVP。
該設置是一個視圖viewImpl,並且在視圖界面內(如果需要)是一個演示者界面,該界面也被聲明。視圖接口是傳遞給viewImpl實現類的。該活動根據其業務邏輯進入viewImpl,在我們的情況下,viewImpl轉到獨立的複合小部件。
如果需要,複合小部件使用演示者返回(另一個傳遞)到活動。順便說一下,視圖或viewImpl中沒有任何業務邏輯,這只是在活動中。它運作良好!
你不必選擇:活動和地點實際上與MVP毫無關係(它們全都只是關於導航和鬆耦合)。因此,只需使用兩者(即建立您的活動作爲主持人,正如pohl在他的回答中所說) – 2011-04-06 21:53:17