MVP

    MVP 是從經典的模式MVC演變而來,它們的基本思想有相通的地方:Controller/Presenter負責邏輯的處理,Model提供數據,View負責顯示。做爲一種新的模式,MVP與MVC有着一個重大的區別:在MVP中View並不直接使用Model,它們之間的通訊是經過Presenter (MVC中的Controller)來進行的,全部的交互都發生在Presenter內部,而在MVC中View會從直接Model中讀取數據而不是經過 Controller。單元測試

    在MVC裏,View是能夠直接訪問Model的!從而,View裏會包含Model信息,不可避免的還要包括一些業務邏輯。 在MVC模型裏,更關注的Model的不變,而同時有多個對Model的不一樣顯示,及View。因此,在MVC模型裏,Model不依賴於View,可是View是依賴於Model的。不只如此,由於有一些業務邏輯在View裏實現了,致使要更改View也是比較困難的,至少那些業務邏輯是沒法重用的。測試

    mvp的優勢:接口

  一、模型與視圖徹底分離,咱們能夠修改視圖而不影響模型
  二、能夠更高效地使用模型,由於全部的交互都發生在一個地方——Presenter內部
  三、咱們能夠將一個Presenter用於多個視圖,而不須要改變Presenter的邏輯。這個特性很是的有用,由於視圖的變化老是比模型的變化頻繁。
  四、若是咱們把邏輯放在Presenter中,那麼咱們就能夠脫離用戶接口來測試這些邏輯(單元測試)
    mvp的缺點:
  因爲對視圖的渲染放在了Presenter中,因此視圖和Presenter的交互會過於頻繁。還有一點須要明白,若是Presenter過多地渲染了視圖,每每會使得它與特定的視圖的聯繫過於緊密。一旦視圖須要變動,那麼Presenter也須要變動了。好比說,本來用來呈現Html的Presenter如今也須要用於呈現Pdf了,那麼視圖頗有可能也須要變動。
相關文章
相關標籤/搜索