2013-03-08 68 views
6

從主持人角色中剝離主持人有什麼好處?GWT - 主持人與活動的分離作用

爲了解析演示者的活動,可以分離哪些角色/關注點?

爲什麼要將它們分爲兩個不同的問題?

在什麼情況下會不統一它們?

舉例說明,優點或缺點。

回答

7

我可以看到兩個主要的原因,從活動分開主持人:可重用性和可測試性。

實際使用案例的可重用性:我們有一個插圖實體,像攝影師,版權和拍攝日期等屬性,可以鏈接到文檔。傳說是關於文件和插圖之間的關係。您可以在自己的屏幕上編輯插圖和圖例,但我們也希望可以從圖例屏幕編輯插圖。所以我們做了插圖畫面的主持人。插圖活動是該演示者的一個非常薄的包裝,傳奇活動稍微複雜一點,但會重複使用演示者和視圖。活動的責任是提供RequestContext,並執行fire()(保存/取消按鈕位於另一活動上,類似於Google網上論壇上的操作)。

假設使用情況的可重用性:

  • 不同的形式因素,要聚集在同一屏幕上的東西或者他們自己的屏幕(例如主/從),當你分開彙總它們,有兩項活動可能並不理想。在手機外形中使用精簡活動可讓您在平板電腦或桌面外觀因素的單個活動中重新使用組件(演示者/視圖)。
  • 重複使用在不同的平臺上使用相同主持人:你可能使用相同的演示上一個Android應用程序和Web應用程序(甚至可能通過java2objc iOS應用程序),認爲會是一個原生的Android視圖或基於GWT視圖,導航將由Android活動和/或片段與GWT活動和場所進行處理。

關於可測試性(這是理論值),然後你可以測試你的演講不活動週期(嘲諷的觀點)的麻煩,然後分別測試生命週期(是否正確初始化和清理提交者,提取/緩存數據等,嘲笑演講者)。

參見https://code.google.com/p/google-web-toolkit/source/detail?r=10185
雷人的想法提交信息是使MVP小部件的實現細節,就像電池部件今天使用內部的主持人。從外面看,他們只是小部件,你可以按照自己想要的方式創作;在內部他們使用MVP,因此您可以測試它們而不需要GWTTestCase

+0

有人告訴我同樣的事情,我讀了你的答案,但沒有詳細說明之前。這是我正在尋找的幫助我設計我的編碼策略的答案。你好。 – 2013-03-10 17:02:52

0

首先是兩個感謝問題,這促使我進行了有史以來最長的研究。 :)

根據Thomos Broyer here

活動無法與窗口小部件通話,演示者可以進行操作。關注

兩個主要領域:

1-獲取數據到小部件: 怎麼能這樣的設計可以改善?

Server (RequestFactory) ---> Activity ---> WidgetPresenter ---> Widget 

這裏,RequestFactory手數據Activity,然後給它 的Presenter 隨後將它交給widget

2-得到從widgets數據到server

widget ---> WidgetPresenter ---> Activity ---> Server(RequestFactory) 
+0

在你給的鏈接,活動僅僅是鏈接到一個地方,而widgetpresenters是沒有關聯的地方演講演示。地點和演示者是分開的主題。沒有什麼能阻止你有一個有副演講者的演講者。 現在你可以決定如何處理所有通信在您superpresenter但我相信它使widgetpresenter其他地方沒有這是一個壞點重用。 – 2013-03-09 10:12:23

+0

這意味着活動的基本演示(沒有停止你作爲一個過濾器說的)或任我誤解了這個問題:) – 2013-03-09 10:20:12

+0

還有一兩件事是肯定的活動都只是一步頂部層的主持人,我來了今天就知道了。如果我錯了,請糾正我。 – 2013-03-09 10:23:59