? ? ? ?設(shè)計模式只是解決某一特定問題的策略,是面 局部的;而架構(gòu)設(shè)計則是一個將設(shè)計模式 觀、全面、有機地組織起來解決整個應用系統(tǒng)的方案。衡量一個軟件架構(gòu)設(shè)計好壞的標準是可復用性和可擴展性??蓮陀眯院涂蓴U展性強的軟件系統(tǒng)能 滿足用戶不斷變化的需求。為了使我們的軟件系統(tǒng)具有可復用性和可擴展性,我主張采 用分層架構(gòu)設(shè)計。
1. 低耦合企業(yè)級系統(tǒng)架構(gòu)設(shè)計
? ? ? ?軟件設(shè)計的原則是提高軟件系統(tǒng)的可復用性和可擴展性,系統(tǒng)架構(gòu)設(shè)計采用層次劃分方式,這些層次之間是松耦合的,層次內(nèi)部是高內(nèi)聚的。

表示層:?用戶與系統(tǒng)交換的組件集合。用戶通過這一層向系統(tǒng)提交請求或發(fā)出指令,系統(tǒng)通過這一層接收用戶請求或指令,待指令消化吸收收后再調(diào)用下一層,接著將調(diào)用結(jié)果展現(xiàn)到這一層。表示層應該是輕薄的,不應該具有業(yè)務邏輯。
業(yè)務邏輯層:?系統(tǒng)的核心業(yè)處理務層。負責接收表示層的指令和數(shù)據(jù),待指令和數(shù)據(jù)消化后,再進行組織業(yè)務的邏輯的處理,并將結(jié)果返回給表示層。
數(shù)據(jù)持久層:?數(shù)據(jù)持久層用于訪問信息系統(tǒng)層,即訪問數(shù)據(jù)庫或文件操作的代碼只能放到數(shù)據(jù)持久層中, 而不能出現(xiàn)在其它層中。
信息系統(tǒng)層:系統(tǒng)的數(shù)據(jù)來源,可以是數(shù)據(jù)庫、文件、遺留系統(tǒng)或者網(wǎng)絡(luò)數(shù)據(jù)。
有關(guān)信息處理的應用一般會采用分層架構(gòu)設(shè)計.
游戲一般會采用引擎,其架構(gòu)是樹形結(jié)構(gòu)

表示層:由UIKit Framework構(gòu)成。
業(yè)務邏輯層:采用什么框架要據(jù)具體的業(yè)務而定,一般是具有一定業(yè)務處理功能的Objective-C和C++ 封裝的類,或者是C封裝的函數(shù)。
數(shù)據(jù)持久層:提供本地或網(wǎng)絡(luò)數(shù)據(jù)訪問, 可能是訪問SQLite數(shù)據(jù)的API函數(shù),也可能是Core Data技術(shù),或是訪問文件的NSFileManager,或是網(wǎng)絡(luò)通信技術(shù)。采用什么方式要看信息系統(tǒng)層是什么。
信息系統(tǒng)層:信息來源分為本地和網(wǎng)絡(luò)。本地數(shù)據(jù)可以放入文件中,也可以放在數(shù)據(jù)庫中,目前iOS本地數(shù)據(jù)庫采用SQLite3。網(wǎng)絡(luò)可以是 個云服務,也可以是一般的Web服務。