最早的时候,只知道MVC(模型+视图+控制器). 把数据的管理与显示分开, 通过控制器实现管理与显示之间的互动, 方便开发与复用.
美好的事情总是很快发生, 在6月份接手的项目中,看到这样的代码, 把视图显示和数据处理的代码放在ViewController里面, 这连MVC 的标准都不是.
之前我经常这样用,把数据单独一层来处理, 然后在数据层里面实现数据的持久化(本地化), 这层就是通常锁说的 S .所用架构就是 MVC S
MVC S 通过把数据存储抽离, 是对MVC做的简化.
不管用到MVC 还是 MVC S,都会产生的问题: 视图控制器因为初期需求的频繁迭代,慢慢的积累下越来越多的业务逻辑代码,相对应的数据转换代码页越来越多.从而导致ViewController越来越大,后期维护越来越难.
业界广泛使用MVVM:
首先看一个典型的IOS是如何创建的:从这里理解MVVM
这是一个典型的MVC设置, Model呈现数据, View呈现用户界面,ViewController完成他们两者之间的交互,一切看起来是那样的完美.
如果我们稍微深一点考虑, 虽然View 和ViewController都是不同的组件, 但每次都是配对使用.
这个图解很好的描述了MVVM, 一个MVC 的增强版. 将视图和控制器连接, 并将表示逻辑从Controller移到一个新的对象中,即View Model. MVVM听起来很高大上,其实就是优化了MVC架构.
MVVM 中的ViewModel就是把数据的展示逻辑从VC中拆分出来,数据经ViewModel出来后,可直接用于View显示
时间: 2024-10-29 10:46:26