2014-10-04 38 views
0

我正在嘗試使用GWT製作一個Web應用程序,並且我嘗試使用MVP設計模式。它看起來像一個活動幾乎與演示者相同,但演示者更特定於某個視圖,這意味着演示者應該知道該視圖支持的特殊方法/元素。演示者應該是活動還是有活動?

但有兩種選擇可以做同樣的事情。

a)讓Presenter使用視圖所需的additioanl方法擴展Activity。

b)讓演示者和活動彼此參照。在這種情況下,活動將執行通用操作,演示者將查看特定的操作。

任何人都可以請幫忙指出哪個選項更可行嗎?謝謝!

回答

1

與建築設計決策一樣,這取決於它。

我建議從簡單的地方開始,其中活動是主持人;即一個班同時扮演活動(由活動經理驅動)和演講者(驅動視圖)的角色。
如果有需要,請將它們分開。要麼獲得更小的可維護類,要麼開始擁有不同的生命週期(在GWT的mobilewebapp示例中,TaskActivity比演示者壽命更長,並且可以在其生命週期中在2個演示者之間切換)。

經驗法則是活動是用於導航,並且您可以在不必導航的情況下(每個任務都有可收藏的URL)在多個任務之間切換。在modilewebapp示例的情況下,查看和編輯任務之間的切換不會在它們之間導航。
獨立的活動和演示者也意味着你可以在不同的應用中有不同的導航方式,共享相同的演示者但不是相同的活動(注意:活動已經是關於這種類型的劈開術,但有時候它不會「比如你是否考慮在查看和編輯「頁面」之間的導航或者只是在同一個「頁面」中切換任務之間進行切換)。

相關問題