iOS架构模式

前言:大体梳理一遍请看

  • http://blog.devtang.com/2015/11/02/mvc-and-mvvm/
  • http://www.cocoachina.com/ios/20160108/14916.html

一.先看MVC

MVC.png
  • view只负责展示数据,例如UILable、UITableViewCell等
  • controller负责协调view和model
  • model:现在很多app的model只用来存储数据(数据存储),这是不合理的.根据Apple的文档,model包括数据和操作数据的业务逻辑(数据存储+数据操作).所以应该把数据获取、数据加工和数据存储都放到这里来.

二. MVVM

MVVM.png
  • 和MVC差不多,ViewModel做了C的很多工作

三.总结

  1. MVVM是在MVC的基础上,把胖model分离成model和viewModel.
  2. MVC和MVVM都是单向通讯.(双向绑定?自动更新?)
    mvvm+rac,view能监听到model的变化,自动刷新UI
  3. MVVM增加了代码量,但是解决了重量级试图控制器的问题,减轻了Controller的负担.

四.解疑答惑

  1. controller自带的view是什么鬼?
    答:controller自带的view其实是一个viewContainer(容器),并不是我们平时使用的UIView.所以可以理解为controller里面并没有正儿八经的view.
    点击这里参考

  2. cell.model = self.modelArr[indexPath.index]我们平时这样用view直接引用model好不好?
    答:不好这样的话model和cell就有了耦合.我们尽量把它们拆分开,粒度越细越好.以前大家写的都是不合理的.

你可能感兴趣的:(iOS架构模式)