1.在MVVM裏,view和view controller正式聯繫在一塊兒,咱們把它們視爲一個組件。視圖view仍然不能直接引用模型model,固然controller也不能。相反,他們引用視圖模型view model。前端
2.view model是一個放置用戶輸入驗證邏輯,視圖顯示邏輯,發起網絡請求和其餘各類各樣的代碼的極好的地方。有一件事情不該納入view model,那就是任何視圖自己的引用。view model的概念同時適用於於iOS和OS X。(換句話說,不要在view model中使用 #import UIKit.h)java
3.使用MVVM會輕微的增長代碼量,但整體上減小了代碼的複雜性。這是一個划算的交易。web
P : protocol協議層編程
Model層相似於MVVM的ViewModel,主要負責存儲抽象邏輯數據,另外Model層主還有部分工做 實現對應的協議層協議,提供協議對應的各類屬性以及服務。Model通過協議層抽象約束,最後 Model被抽象成具備統一抽象邏輯的業務場景,最終Model層在講數據交付整個MVC結構繪製展 示的時間,咱們能夠按照同一套抽象的邏輯標準去執行。設計模式