2012-08-02 111 views
1

我想知道如何用MVP實現一個簡單的登錄情況。我的MVP框架只允許從視圖中觸發事件,我不能從演示者觸發事件。不知道這是好事還是壞事。我確實看到它的優勢,但簡單的情況下,只是被附加的間接指針炸燬。MVP如何實現簡單的登錄

所以,當我想實現簡單的登錄場景我有以下幾點。

  • LoginPresenter
  • LoginView
  • LoginModel

當用戶登錄按鈕登錄表單和點擊填充會發生什麼?

  1. 視圖觸發一個事件「登錄點擊」
  2. 主講監聽該事件,並使用它的模型
  3. 如果登錄successufl不登錄,我必須再次調用視圖告訴登錄成功。
  4. 視圖觸發另一個事件「登錄成功」。
  5. 演示者和其他演示者現在顯示另一個視圖並關閉登錄窗口。

從我的角度來看通過查看步驟對於成功的事件實在太多......

是我的錯框架沒有讓我從演示火災事件或這是MVP的neccessary邪惡?

回答

1

每個框架都將定義自己的規則,確切地說明View如何觸發Presenter,反之亦然。您必須仔細研究是否有其他框架似乎稍微容易一些。但是,總體努力可能保持相似。

對於像登錄這樣簡單的過程來說,這看起來像是一個很大的努力,但在我看來,單元可測試性的好處是值得的。

現在,您可以通過嘲笑視圖和模型來測試您的日誌。演示者是否正確處理無效輸入?如果登錄不正確/正確,視圖是否得到正確的提示?所有這些問題現在都可以用模型和視圖的模擬對象進行單元測試來解決。

只要確保您的視圖和模型被定義爲接口。查看諸如JMock之類的庫,以幫助您進行單元測試。

然後,想象一下這個框架對於更復雜的場景有多有用,比如處理客戶的訂單!