前言
在做了一段時(shí)間ios基于MVC模式的開(kāi)發(fā)后,最后都疲于維護(hù)自己或者別人寫(xiě)的代碼南片。一直在探究一種更有效清晰易于維護(hù)的開(kāi)發(fā)模式变姨。在經(jīng)過(guò)對(duì)其他幾種現(xiàn)有模式進(jìn)行實(shí)際考察后纽匙,最后下定決心對(duì)現(xiàn)有一些項(xiàng)目采取MVVM的開(kāi)發(fā)模式丽惭,在參考別人框架的基礎(chǔ)上击奶,在最近一個(gè)項(xiàng)目的實(shí)際的mvvm開(kāi)發(fā)過(guò)程中總結(jié)了一些經(jīng)驗(yàn),與大家分享下责掏,也希望不足之處大家多提意見(jiàn)柜砾。
核心思想:各模塊各司其職,模塊解耦换衬。
工程簡(jiǎn)介
有關(guān)MVVM的介紹大家自己上網(wǎng)搜索痰驱,在此只介紹我自己關(guān)于MVVM具體實(shí)現(xiàn)的一種參考(借鑒了網(wǎng)上其他大神的一些寫(xiě)法)。除了封裝reactiveCocoa之外瞳浦,還封裝了一些常用框架担映,如afnetworking,yycache等叫潦。便于在該基礎(chǔ)工程上快速進(jìn)行實(shí)際開(kāi)發(fā)另萤。
github地址:github.com/airpig2011/MVVM_RAC
https://github.com/airpig2011/MVVM_RAC
1.封裝afnetworking,使用單例子處理網(wǎng)絡(luò)請(qǐng)求诅挑。
2.結(jié)合afnetworking與reactiveCocoa實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求四敞。
3.封裝yycache,實(shí)現(xiàn)網(wǎng)絡(luò)緩存
4.綁定view與model獲取拔妥,減輕controller工作忿危,解耦網(wǎng)絡(luò)請(qǐng)求與controller
5.模塊化view與網(wǎng)絡(luò)請(qǐng)求,提高模塊復(fù)用性
實(shí)現(xiàn)框圖
目錄結(jié)構(gòu)
代碼介紹
以下只列出mvvm部分代碼没龙,具體代碼查看github上實(shí)現(xiàn)铺厨,包括afnetworking等模塊的封裝
controller部分
清晰明了,只做view的添加硬纤,通過(guò)view關(guān)聯(lián)viewModel實(shí)現(xiàn)具體網(wǎng)絡(luò)請(qǐng)求和邏輯操作
view部分
添加ui解滓,綁定viewmodel,通過(guò)reactiveCocoa的通知和觀察者機(jī)制