寫了這么多年的 iOS,覺得最佳架構(gòu)其實就是 MVC,其它什么 MVP、MVVM、VIPER 什么的都是扯淡的,我曾經(jīng)寫過兩年多 MVVM,最后感覺就是把簡單事情搞復(fù)雜了。
MVC 結(jié)構(gòu)的代碼,可讀性和可維護性遠超其它架構(gòu)。
MVC 架構(gòu)的學習成本遠低于其它架構(gòu),新人都能直接上手。
為啥還有很多人說 MVC 不好,轉(zhuǎn)而去搞其它架構(gòu),那是因為他們根本沒把 MVC 寫好。
寫好 MVC 的第一原則:界面邏輯和業(yè)務(wù)邏輯分離
寫好 MVC 的第二原則:類的設(shè)計嚴格遵守單一職責原則
寫好 MVC 的第三原則:該復(fù)用的地方就要復(fù)用
對于界面邏輯和業(yè)務(wù)邏輯分離,只要把業(yè)務(wù)邏輯都寫在 MVC 的 M 里,界面邏輯都寫在 V 和 C 中。
一個我覺得最完美的 iOS 項目分層方法:
主工程:分模塊寫界面邏輯、資源文件(MVC 中的 V 和 C)
工程二:分模塊寫業(yè)務(wù)邏輯(MVC 中的 M)
工程三:網(wǎng)絡(luò)和協(xié)議層
工程四:基礎(chǔ)層
這四個工程有從上到下的依賴關(guān)系,所有工程可以在一個 Workspace 中,工程二到四通過 CocoaPods 來引入。