之前我們學習了那麼多的設計模式,都是用來提高軟件系統的“可復用性”和“可擴展性”的。今天我們來學習一下IOS開發中的應用的架構設計。
轉載請注明出處:http://blog.csdn.net/developer_zhang
我們設計的系統架構應該采用分層劃分方式,而且每層之間都應該是送耦合的,層次內部是高內聚的。如圖為通用的低耦合的企業級系統架構圖:
表示層:用戶與系統交互的組件集合。用戶通過這一層向系統提交請求或者發出指令,系統通過這一層接受用戶指令,調用下一層,然後將結果展現到這一層。表示層應該是輕薄的,不應該具有業務邏輯。
業務邏輯層:系統的核心業務處理層。負責接收表示層的指令和數據,待指令和數據消化吸收後,再進行組織業務邏輯的處理,並返回結果給表示層。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+yv2+3bPWvsOy46O6yv2+3bPWvsOy49PD09q3w87K0MXPos+1zbOy46OstNPJ6LzGuea3tsnPvbLKx86qwcu9tbXN8e66z7bIo6zStc7xwt+8rbLjsrvTprjDvt/T0LfDzsrK/b7dv+K78tXfzsS8/rLZ1/e1xLT6wuujrNXi0Km0+sLr06a4w7fFtb3K/b7ds9a+w7Lj1tChozwvcD4KPHA+0MXPos+1zbOy46O6z7XNs7XEyv2+3cC01LSjrL/J0tTKucr9vt2/4qOszsS8/qOs0sXB9M+1zbO78tXfzfjC58r9vt2hozwvcD4KPGgyPjIuMSDKtcD9t9bO9jwvaDI+CjxwPiAgyOe5+87Sw8ex4NC00ru49rv509ppT1OjqGlQaG9uZbrNaVBhZMG9uPbGvcyoo6m1xE15Tm90ZXPTptPDo6zL/L7f09DU9sm+uMSy6bG4zfzCvLXEuabE3KGj08PA/c28yOfPwqO6PC9wPgo8cD48aW1nIHNyYz0="/uploadfile/Collfiles/20140228/20140228083232290.jpg" width="700" height="500" alt="\">
分層設計後,表示層可以分為iPhone和iPad版本,而業務邏輯層,數據持久層和信息系統層可以公用,這樣大大減少了我們的工作量。
在IOS平台中,分層架構設計有多種模式:基於同一工程的分層,基於一個工作空間不同工程的分層和靜態鏈接庫分層。這裡我們簡單介紹基於統一工程的分層。
在本應用中,我們分為三組--PresentationLayer,BusinessLogicLayer和PersistenceLayer,其中PresentationLayer用於放置標識相關的類,BusinessLogicLayer用於放置邏輯層相關類,PersistenceLayer用於放置持久層相關的類。在各個層下面,我們可以按照業務模塊劃分,也可以按照組件功能劃分。而PersistenceLayer層還要分為dao和domain兩個組。dao用於放置數據訪問對象,該對象中訪問數據的CRUD四個類方法。為了降低耦合度,dao一般要設計成協議(或Java接口),然後根據不同的數據來源采用不同的實現方式。domain組是實體類,實體是應用中的”人“,”事“,”物“等。
代碼實例:
Note實體類:
#import/*! * Note實體類 * * @since V1.0 */ @interface Note : NSObject @property (nonatomic,strong) NSDate* date; @property (nonatomic,strong) NSString* content; @end
數據持久化操作類:
#import#import "Note.h" /*! * 數據持久化操作類(用listData來模擬sqlLite) * * @since V1.0 */ @interface NoteDAO : NSObject //保存數據列表 @property (nonatomic,strong) NSMutableArray* listData; //單例方式實例化自身對象 +(NoteDAO*) shareInstance; //增加備忘錄方法 -(int) add:(Note*)model; //刪除備忘錄方法 -(int) remove:(Note*)model; //修改備忘錄方法 -(int) update:(Note*)model; //查詢所有 -(NSMutableArray*) findAll; //根據主鍵查詢數據的方法 -(Note*) findById:(Note*)model; @end
備忘錄業務邏輯類:
#import#import "NoteDAO.h" /*! * 備忘錄業務邏輯類 * * @since V1.0 */ @interface NoteBL : NSObject //插入備忘錄方法 -(NSMutableArray*) addNote:(Note*)model; //刪除備忘錄的方法 -(NSMutableArray*) removeNote:(Note*)model; //查詢所有方法 -(NSMutableArray*) findAll; @end
以上是所有內容,希望對大家有所幫助。
代碼實例:http://download.csdn.net/detail/u010013695/6968053