看到一篇介紹 MVVM的文章,這個概念出自Functional Reactive Programming on iOS這本書,提出了mvvm模擬以解決mvc由于不易于自動化測試,manager指代不明,以及網絡邏輯,視圖中驗證邏輯等所屬不明(應放入c還是m中呢)而導致的v可能的臃腫。鏈接如下:http://www.cocoachina.com/industry/20140716/9152.html
model-view-viewmodel(mvvm)模式的要點在于:
首先,view和view controller緊密聯系,即與view效果相關的各種效果以及view本身所觸發的各種動作會得到view controller的立即響應
其次,model的模式為自驅動(內化網絡功能)及view model驅動,亦即view和view controller不能直接操控model
最后,viewmodel位于整個模式中最為核心的部位,即其與 view和view controller的組合進行完全的交互,同時亦與model進行完全的交互
使用方法在于,展示邏輯位于viewmodel中,viewcontroller的臃腫得以解決
其帶來的結果即是viewmodel并未引用view而又完整地包含了展示邏輯,而且整個應用的可單元測試性得到了提升