蘋果官方推薦的App開發模式是MVC,隨之衍生很多MVC的設計模式MVP,MVVM,MVCS。
MVC是很好的面向對象編程范式,非常適合個人開發或者小團隊開發。
簡單架構向大型項目架構演進中,就需要解決三個問題。
即:模塊粒度應該如何劃分?如何分層?多團隊如何協作?而在這其中,模塊粒度的劃分是架構設計中非常關鍵的一步。同時,這也是一個細活,我們最好可以在不同階段采用不同的粒度劃分模塊。
對于 iOS 這種面向對象編程的開發模式來說,我們應該遵循以下五個原則,即 SOLID 原則。
單一功能原則:對象功能要單一,不要在一個對象里添加很多功能。
開閉原則:擴展是開放的,修改是封閉的。
里氏替換原則:子類對象是可以替代基類對象的。
接口隔離原則:接口的用途要單一,不要在一個接口上根據不同入參實現多個功能。
依賴反轉原則:方法應該依賴抽象,不要依賴實例。iOS 開發就是高層業務方法依賴于協議。
同時,遵守這五個原則是開發出容易維護和擴展的架構的基礎。
梳理組件之間的邏輯關系,進行改造。
而對于組件間如何分層這個問題,我認為層級最多不要超過三個,你可以這么設置:
底層可以是與業務無關的基礎組件,比如網絡和存儲等;
中間層一般是通用的業務組件,比如賬號、埋點、支付、購物車等;
最上層是迭代業務組件,更新頻率最高。
兩種架構設計方案:
1、協議式:
協議式架構設計主要采用的是協議式編程的思路:在編譯層面使用協議定義規范,實現可在不同地方,從而達到分布管理和維護組件的目的。這種方式也遵循了依賴反轉原則,是一種很好的面向對象編程的實踐。
2、中間者:
另一種常用的架構形式是中間者架構。它采用中間者統一管理的方式,來控制 App 的整個生命周期中組件間的調用關系。同時,iOS 對于組件接口的設計也需要保持一致性,方便中間者統一調用。