2011-04-06 65 views
9

我一直在研究GWT和MVP最近,說實話我很困惑。我的項目將包括大約40個不同的地方或一起瀏覽。在閱讀多個教程時,一些人遵循Model-View-Presenter和其他人使用活動和場所,所有這些都是以MVP,GWT爲主題的。MVP或活動和地方,爲GWT 2.2

我不確定爲什麼要遵循一個新的MVP,GWT 2.2項目。

非常感謝, 亞歷

+1

你不必選擇:活動和地點實際上與MVP毫無關係(它們全都只是關於導航和鬆耦合)。因此,只需使用兩者(即建立您的活動作爲主持人,正如pohl在他的回答中所說) – 2011-04-06 21:53:17

回答

5

Alex,

活動和場所是谷歌實施的MVP框架。 GWT有許多已經建立起來的附加MVP框架,其中包含許多尚未納入GWT的附加功能。這兩個我建議是:

GWT平臺:http://code.google.com/p/gwt-platform/

MVP4G:http://code.google.com/p/mvp4g/

他們有許多額外的功能,以減少你必須寫來實現解決方案的樣板代碼量。他們是值得峯值選擇谷歌的一個& P.

乾杯 基因

4

活動和地點是在GWT 2.2中實現的MVP的解決方案。在此之前,MVP只是推薦的方法,沒有Google提供的官方框架。這就是爲什麼你會感到困惑。

我建議你堅持使用Activities和Places,因爲它是MVP的官方Google解決方案。

我希望它有幫助。

2

亞歷克斯,

活動和地點(以及ActivityMapper和更多)是其中GWT團隊提供給他們正式較早MVP模式的建議類。前一段時間,我嘗試了「原始」MVP建議,目前正在使用上述類提供的更高級別的方法。使用新類肯定會更容易。除了良好的MVP抽象外,您還可以免費獲得在應用程序中處理瀏覽器歷史導航的重要方面。

MVP API在這裏停留,看起來如此,如果您使用的是GWT 2.2.x,我還建議您在項目開始時使用新的MVP類。

3

事實證明Activity在MVP設計模式中扮演了Presenter的角色。不是所有的演示者都需要活動,但是如果你有一個Activity,你可以把它看作是一種特殊的演示者,具有明確的生命週期,用於從一個「地點」轉換到另一個「地點」。

所以這不是MVP和「活動&地方」之間的選擇。相反,他們都是一樣的想法。新的活動&地方框架只是一個改進。

2

活動和地點都不是MVP框架之前! Google在後面的文檔中刪除了這種「干擾」。它只是一個瀏覽器歷史框架(用於輕鬆(反)序列化應用程序的狀態)。但是在實施MVP和使用A時,事實證明,在許多情況下,合併活動和主持人是一個不錯的主意。

在更一般的情況下,一個活動可以開始n個演示者。

0

在我們的設計中,我們使用了活動和場地以及演示者。我們也使用MVP。

該設置是一個視圖viewImpl,並且在視圖界面內(如果需要)是一個演示者界面,該界面也被聲明。視圖接口是傳遞給viewImpl實現類的。該活動根據其業務邏輯進入viewImpl,在我們的情況下,viewImpl轉到獨立的複合小部件。

如果需要,複合小部件使用演示者返回(另一個傳遞)到活動。順便說一下,視圖或viewImpl中沒有任何業務邏輯,這只是在活動中。它運作良好!