2011-03-06 30 views
4

我看落實 「加載」 反饋兩種基本方法(如旋風加載圖標):什麼控制MVP中的「加載」反饋?

在主持人:

void displayData() 
{ 
    display.startShowingLoadingIcon(); 
    startLoadingData(); 
} 

void onDataLoaded() 
{ 
    display.stopShowingLoadingIconAndDisplayData(data); 
} 

在顯示:

void showData() 
{ 
    startShowingLoadingIcon(); 
    presenter.getData(callback); 
} 

Callback callback(data) 
{ 
    stopShowingLoadingIconAndDisplayData(data); 
} 

我喜歡第二解決方案,因爲它似乎加載反饋顯然是一個用戶界面的決定。我不希望我的演示者必須知道任何類型的用戶交互。此外,第一種解決方案允許顯示器在用戶取消請求,出現其他情況等等的情況下顯示一定的靈活性。另一方面,第一種解決方案實施起來更簡單,並且不需要顯示器知道主持人。

你是做什麼的?

回答

2

我認爲它屬於中的觀點,因爲:

1:你會拿東西出來的觀點的原因是讓您可以更輕鬆地對其進行測試。一個簡單的啓動/停止顯示加載似乎並不像許多值得編寫測試的邏輯。

2:此功能對視圖非常具體,感覺演示者甚至不必知道它。

3:由於視圖負責知道如何呈現自己,因此它應該知道如何在需要時顯示加載圖標。