簡體   English   中英

MVP模式(GWT)的優勢是什么

[英]What is the advantage of the MVP pattern (GWT)

我剛看完這篇文章 ,確實讓我很困惑。

其次,這個模型允許我們最小化GWTTestCase的使用,GWTTestCase依賴於瀏覽器的存在,並且對於我們的大部分代碼,編寫輕量級(和快速)JRE測試(不需要瀏覽器)。 [1]

這是整個好處,我是否遵循這種設計模式? 它似乎使代碼更復雜......你使用這種模式嗎?

我不同意,MVP使代碼方式不那么復雜,尤其是在GWT的情況下。 如果您計划中型到大型GWT項目,那么MVP架構是您的主要選擇。 我建議看看GWT MVP(谷歌)和gwt-platform(KennethJ建議)。 還有其他實現。

MVP的主要好處(我的意思是MVP模式 - 不僅僅是GWT MVP):

  • 明確分離GWT UI和業務邏輯; 所有客戶端Java代碼都變得非常通用,對GWT實現的依賴性最小(主要通過接口)。 這有助於測試,但它本身就是UI設計的寶貴好處。
  • 由於幾乎不依賴於業務邏輯,UI的可維護性增加
  • 由於GWT依賴性有限,增加了客戶端和服務器之間共享代碼的數量

您可能采用的其他補充技術:

  • gwt-gin(Google Guice的客戶端實現):gwtp幾乎需要它(或者需要 - 我從來沒有試過沒有它)
  • Guice(服務器端)與客戶端代碼保持一致,但在技術上不是必需的
  • 測試模擬框架(例如mockito)總是方便MVP
  • GWT UIBinder - 除非您在UI設計中非常動態
  • GWT EventBus - 異步環境中客戶端通信的主要方法,如AJAX / JavaScript
  • GWT-RPC通過命令模式(gwtp dispatcher和/或RequestFactory)

不使用GWTTestCase的事實非常棒,特別是如果你進行測試驅動開發,但還有topchef提到的其他好處。 這取決於你使用的MVP“版本”。 當我看到人們將Presenter注冊為從視圖中暴露的小部件的監聽器時,我感到畏縮。

一般來說圍繞MVP的問題之一是有幾種口味,並且對模式不熟悉的人會感到困惑,因為每種口味都有不同的優點和缺點。 你可以看看這兩篇文章來幫助決定它是否適合你,並獲得有關MVP的更多細節(以及你可能會混淆的其他內容): GWT MVP模式GWT MVP,活動和地點混亂

相比什么優勢? 如果你的意思是與標准MVC模式(UI開發的常見模式)相比具有優勢,那么是的,我猜這是這種模式的主要原因

GWTTestCases比標准junit測試慢得多且麻煩。 您希望使用標准Java測試框架測試邏輯,並使用GWTTestCase僅測試UI特定邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM