1. 程式人生 > >mvc,mvp和mvvm的簡單介紹

mvc,mvp和mvvm的簡單介紹

MVC是最經典的開發模式之一,最早是後臺那邊來的,後臺前端的複雜度也上來了,MVC的開發模式也帶進前端了。

MVC(Model,View,Control)

MVC有兩個很明顯的問題:

1.m層和v層直接打交道,導致這兩層耦合度高

2.因為所有邏輯都寫在c層,導致c層特別臃腫

為了解決這兩個問題,MVC的變種模式出現了MVP和MVVM.

MVP(Model,View,Presenter)

MVC架構方式的變種,使用Presenter來代替Control,而且改變了資料的流向,View和Model之間不再直接進行互動,而是全部通過Presenter來進行。Presenter同時持有View和Model,同時View和Model中也各自含有對於Presenter的引用。當View中的檢視改變,需要更新資料時,通過Presenter來通知Model來進行資料更新,同樣的當資料發生更新時,也通過其自身含有的額Presenter引用來通知View來進行更新。這樣Presenter就可以作為橋樑來聯絡兩者,而傳統的Activity只需要進行UI的繪製,呈現即可。

  • 優點:優點是可以是得整個軟體分層清晰,降低耦合度,同時也將Activity從既是Control又是View的境地中解脫出來,只需要單一的負責UI即可,降低了Activity的任務

  • 缺點:缺點是需要加入Presenter來作為橋樑協調View和Model,同時也會導致Presenter變得很臃腫,在維護時比較不方便。而且對於每一個Activity,基本上均需要一個對應的Presenter來進行對應。為了緩解這種臃腫,MVVM出現了。

MVVM(Model,View,ViewModel)

MVVM其實是對MVP的一種改進,他將Presenter替換成了ViewModel,並通過雙向的資料繫結來實現檢視和資料的互動。也就是說只需要將資料和檢視繫結一次之後,那麼之後當資料發生改變時就會自動的在UI上重新整理而不需要我們自己進行手動重新整理。在MVVM中,他儘可能的會簡化資料流的走向,使其變得更加簡潔明瞭。

目前這種架構主要使用databing框架,關於這個框架下一章節介紹。