Android中MVC、MVP、MVVM具體解釋

來源:互聯網
上載者:User

標籤:指令   UI   簡化   意義   pop   family   資料繫結   pad   white   

前言

今天有時間就剛好有想寫關於這幾個名詞。對於我來說。事實上這麼多名詞、思想歸根究竟就是要依據項目實際、人員配置來做合理最佳化,既不能紙上談兵、又不能畏懼不前。那麼合理分階段架構和完好代碼才是關鍵,本篇文章將以兩個思路講述,第一先說介紹,然後再說優缺點,結合實際開發。

一、MVC介紹

MVC (Model-View-Controller):M是指邏輯模型,V是指視圖模型,C則是控制器。一個邏輯模型能夠對於多種視圖

模型,比方一批統計資料你能夠分別用柱狀圖、餅圖來表示。一種視圖模型也能夠對於多種邏輯模型。

使用MVC的

目的是將M和V的實現代碼分離。從而使同一個程式能夠使用不同的表現形式。而C存在的目的則是確保M和V的同步。

一旦M改變,V應該同步更新。

二、Android中MVC使用

1.視圖層(View):一般採用XML檔案進行介面的描寫敘述,使用的時候能夠很方便的引入。當然。怎樣你對Android瞭解的比較的多了話,

就一定能夠想到在Android中也能夠使用JavaScript+HTML等的方式作為View層,當然這裡須要進行Java和JavaScript之間的通訊。幸運的是,

Android提供了它們之間很方便的通訊實現。 ? ??

?2.控制層(Controller):本層應該是跟業務最掛鈎的一層。是使用者能操作的入口,在android中僅僅有activity。ios中有Controller,

在這邊activity中要做的就是業務導向。詳細實現模組功能能夠封裝到model層,長時間操作例如以下載、上傳、等都能夠放線程或者服務等。

?3.模型層(Model):對資料庫的操作、對網路等的操作都應該在Model裡面處理,當然對業務計算等操作也是必須放在的該層的。

還有資料模型都能夠放在本層。

三、MVC長處

從使用者的角度出發,使用者能夠依據自己的需求。選擇自己合適的瀏覽資料的方式。

比方說,對於一篇線上文檔,

使用者能夠選擇以HTML網頁的方式閱讀,也能夠選擇以pdf的方式閱讀。從開發人員的角度,MVC把應用程式的

邏輯層與介面是全然分開的。最大的長處是:介面設計人員能夠直接參與到介面開發,程式猿就能夠把精力放

在邏輯層上。而不是像曾經那樣,設計人員把全部的材料交給開發人員,由開發人員來實現介面。

在Eclipes工

具中開發Android採用了更加簡單的方法,設計人員在DroidDraw中設計介面。以XML方式儲存。

在Eclipes中直接開啟就能夠看到設計人員設計的介面。

四、MVP介紹

MVP作為MVC的演化版本號碼,那麼相似的MVP所相應的意義:M-Model-模型、V-View-視圖、P-Presenter-表示器。?

從MVC和MVP兩者結合來看,Controlller/Presenter在MVC/MVP中都起著邏輯控制處理的角色。起著控制各業務

流程的作用。

而 MVP與MVC最不同的一點是M與V是不直接關聯的也是就Model與View不存在直接關係,這兩者之

間間隔著的是Presenter層,其負責調控?View與Model之間的間接互動,MVP的結構圖例如以下所看到的,對於這個圖理解

就可以而不必限於當中的條條框框,畢竟在不同的情境下多少會有些出入的。在 Android中很重要的一點就是對UI的

操作基本上須要非同步進行也就是在MainThread中才幹操作UI。所以對View與Model的切斷分離是合理的。此外

Presenter與View、Model的互動使用介面定義互動操作能夠進一步達到松耦合也能夠通過介面更加方便地進行

單元測試。


四、MVP長處缺點

1.長處:
Presenter這一層處理著程式各種邏輯的分發,收到View層UI上的反饋命令、定時命令、系統命令等指令後分發處理

邏輯交由Model層做詳細的業務操作。在這裡能夠看到本身activity要做的事情被抽離出來,降低activity與view的業務

耦合,這樣有利於維護、易開發,降低降低activity中代碼和業務抽離模組化。


2.缺點
mvp架構會抽離一層、這一層是業務分發,假設項目越來越大、人越來越多。假設業務許多。而且易改動的話,抽

離的一層會變的易讀性降低。還有Team Dev假設不能堅持,要又一次架構。基本要又一次寫一遍,所以要謹慎謹慎。

五、MVVM介紹MVVM首先是基於mvc演變而來的,講到這裡那麼MVVM代表啥裡。MVVM模式包括了三個部分:Model – 代表你的基本商務邏輯。View – 顯示內容,ViewModel – 將前面兩者聯絡在一起的對象。

一個ViewModel介面提供了兩個東西:動作和資料。動作改變Model的下層(click listener。監聽文字改變的listener等等),而資料則是Model的內容,代表第三方庫:RoboBinding等,github:https://github.com/RoboBinding/AndroidMVVM.
六、MVVM優缺點1.長處

ViewModel大致上就是MVP的Presenter和MVC的Controller了,而View和ViewModel間沒有了MVP的介面介面,而是直接

互動。用資料“綁定”的形式讓資料更新的事件不須要開發人員手動去編寫特殊用例,而是自己主動地雙向同步。資料繫結你能夠

覺得是Observer模式或者是Publish/Subscribe模式,原理都是為了用一種統一的集中的方式實現頻繁須要被實現的資料更新

問題。比起MVP。MVVM不僅簡化了業務與介面的依賴關係,還最佳化了資料頻繁更新的解決方式,甚至能夠說提供了一種有

效的解決模式。

2.缺點

MVVM是資料模型綁定視圖方式,降低代碼、降低了資料更新,但假設是負責商務邏輯或者是高頻發業務改動,對於代碼理

解會有所降低。而且要使用第三方架構。這個是我最不喜歡的一點。





Android中MVC、MVP、MVVM具體解釋

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.