iOS精英班iOS-swiftiOS学习

MVVM与RxSwift实践

2017-10-09  本文已影响665人  Cocoaleeo
按照国际惯例先来安利几篇文章

最近在学习 Swift 和 RxSwift,但是看了许多文章,似乎并没有很多可以参考的项目,有一些也属于Swift2 的demo,所以结合自己的理解做了个小项目,在此分享出来,旨在与各位互相交流学习,能力有限,如果其中有失误或错误还请各位多多指正!

1. 什么是MVVM

简单来说,MVVM是MVC的升级,通过VM将Controller中复杂的逻辑层进行分离,达到Controller瘦身、代码分离、便于测试等目的,所以又可以被称为MVCVM,有些同学会这样理解:哦,就是多了个VM!这个怎么说呢,不能说你错,但是会有种搞笑的效果,因为在MVVM和MVC实际上可以说是两种思想,MVC下的思路是顺叙,请求-数据-展示,但MVVM下则有点像逆叙,你需要先想好拿到数据做的事情(Binding),然后才进行数据请求等操作。更详细的解释可以看上文中推荐的文章,借两张图帮助大家理解一下!

MVC MVVM
2. 实践内容

仿 Cineast 项目,Demo地址 https://github.com/ChinaBanana/FancyMovie

可能有同学会刚到疑惑,Service是什么东西,Service可以看做是对ViewModel的进一步封装,举个列子:当调用某个网络请求时,返回的数据可能涉及到多个UI,这时候如果只放在单个UI的VM中时,要刷新多个UI界面逻辑上似乎有点混乱,而把网络请求放到service中后,只要VM发出请求,Service实现请求,各个UI界面对Service进行订阅操作即可刷新UI界面,这样逻辑更加清晰,代码也更加整洁!

image.png
image.png
3. 最后 To do list
上一篇下一篇

猜你喜欢

热点阅读