2012-02-27 56 views
1

運行測試在MVP的View提供getter方法給小部件的接口 - 像hasClickHandler ASO。 - 以便演示者可以訪問這些ClickHandlers以添加監聽器和設置值。MVP VS MVP2 - 最佳實踐,在JVM

這使視圖非常愚蠢的。

如果你想測試你有嘲笑的觀點MVP的主持人,你必須以模擬按鈕點擊創建按鈕嘲笑。

另一方面,在MVP2中,視圖知道演示者,演示者提供諸如onButtonClick之類的方法,視圖添加了ui處理函數。這使觀看者知道演示者,但我認爲這更容易測試。

那麼什麼是MVP和MVP2的利弊?

是否真的可以寫入每個部件嘲笑,以創造良好的看法嘲弄?

MVP respectivly的好事MVC是,你知道什麼進入演示中,視圖和模型。我不太確定MVP2是否如MVP那樣清晰。

你的經驗是什麼?

+0

我離開這個問題打開,以鼓勵其他答案。 – Peter 2012-02-29 15:56:11

回答

2

我用了這兩種方法,我覺得有使用MVP2模式(查看調用由演示界面演示的方法)的兩個優點:

  • 您不必創建這麼多內(匿名)您的演示者回調視圖的所有HasXXXHandler方法。
  • 編寫單元測試比較容易,因爲您不必爲所有這些HasXXXHandler接口創建模擬,並且只需要測試演示者的接口函數是否被調用即可。

另外MVP只是一個模式,就像任何其他設計模式其只是一個指導方針。沒有必要爲了堅持最純粹的實現而讓自己的生活更加艱難。

+0

好的,你的'Presenter'知道你的'View',反之亦然? – Peter 2012-02-28 09:20:11

+1

是的,我的''View''和我的''Preserenter''都有所謂的委託接口,它們定義了另一個「夥伴」爲了相互通信而必須執行的合同。通過使用一個界面,它可以乾淨地分離和測試。看看這個: http://www.codeproject.com/Articles/42967/Model-View-Presenter-via-NET – 2012-02-28 09:26:12