你們都知道,在移動設計開發中有不少種模式,最經常使用的單例設計模式、MVC設計模式、工廠設計模式、KVO、通知、代理等等。使用設計模式的目的:爲了代碼可重用性、讓代碼更容易被他人理解、保證代碼可靠性。
而架構設計是宏觀的、全面的將設計魔術組織起來解決整個應用系統的方案。架構設計是人們對一個結構內的元素及元素間關係的一種主觀映射的產物。一個好的架構設計有着良好的可複用性和可擴展性,這樣能夠知足用戶不斷變化的需求。ios
咱們知道,軟件設計的原則是提升軟件系統的「可複用性」和「可擴展性」。系統架構設計採用層次劃分的方式,層次之間是低耦合的,層次的內部是高內聚的。以下圖:數據庫
表示層:用戶和系統交互的組件集合。用戶經過提交請求或者發出指令,系統接收用戶的請求或者指令,而後將請求或者指令調往下一層,最終將結果返回這一層。表示層是用戶交互和數據的展現,不該具備業務邏輯。設計模式
業務邏輯層:接收處理表示層的指令和數據,進行業務邏輯處理,並將結果返回表示層。網絡
數據持久層:數據持久層用於訪問信息系統層,即訪問數據庫或文件操做。架構
信息系統層:系統數據來源,如數據庫、文件、網絡數據等。框架
這是一個井井有條上下層關係。沒有下層就沒有上層。信息系統層是最底層,是全部層的基礎,咱們在開發的時候應該先作下層在作上層。架構設計
ios應用也須要架構設計,但不是不必定都採用分層架構設計。通常而言,有關信息處理的應用大多采用分層架構設計,可是像遊戲等應用就不會採用這種分層架構設計。設計
表示層:UIKit Framework構成,如視圖、控制器、控件、事件處理等。代理
業務邏輯層:採用的框架根據業務而定。blog
數據持久層:網絡數據的訪問或者本地數據訪問。
信息系統層:信息來源分爲本地和網絡。
在iOS平臺中,分層架構有多種模式。首先咱們先熟悉:工程和工做空間、靜態庫和框架之間的關係。