MVVM模式(Model View ViewModel)

因為之前看code4Startup接觸了AngularJS,而這個Google出品的JavaScript框架,而這個框架就強調了MVVM模式。

先從MVC(Model View Controller)開始

開始學編程的時候一定會聽到這個MVC模式,然後我們開始將寫在一起的程序拆分開了。

mvvm1

我們按照功能拆分成Model View Controller三個類,
讓Model處理數據、讓View顯示介面,不讓View和Model互相溝通,而是讓ViewController當中間人。
也因為這樣,我們有很多很多的操作都會寫在ViewController裡面,寫多了以後你會覺得,這個ViewController怎麼這麼胖。


但是平時在開發iOS App的時候,我們常常是直接操作ViewController下的view的,而不是另外去創建一個。

所以就有人覺得應該把View和ViewController寫在一起,也就變成了下面這樣:

intermediate

 

ViewController有很多處理「顯示」方面的函數,但是讓他變得更胖還有個原因,就是我們從Model那邊拿來的數據還會做處理,比比如將NSDate格式化成自己想要的NSString等等。(2000-09-08 20:20:20 =>09-08-2000 20:20:20)


 

MVVM模式

所以MVVM就是MVC的加強版,在Model和View/Controller之間增加一個處理數據的ViewModel。

mvvm

 

 

 

參考資料:http://objccn.io/issue-13-1/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *