設計模式深入學習IOS版(8)架構設計

來源:互聯網
上載者:User

1 前言

之前我們學習了那麼多的設計模式,都是用來提高軟體系統的“可複用性”和“可擴充性”的。今天我們來學習一下IOS開發中的應用的架構設計。

轉載請註明出處:http://blog.csdn.net/developer_zhang

2 詳述

我們設計的系統架構應該採用分層劃分方式,而且每層之間都應該是送耦合的,層次內部是高內聚的。為通用的低耦合的企業級系統架構圖:

展示層:使用者與系統互動的組件集合。使用者通過這一層向系統提交請求或者發出指令,系統通過這一層接受使用者指令,調用下一層,然後將結果展現到這一層。展示層應該是輕薄的,不應該具有商務邏輯。

商務邏輯層:系統的核心業務處理層。負責接收展示層的指令和資料,待指令和資料消化吸收後,再進行組織商務邏輯的處理,並返回結果給展示層。<喎?http://www.bkjia.com/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="http://www.2cto.com/uploadfile/Collfiles/20140228/20140228083232290.jpg" width="700" height="500" alt="\">

分層設計後,展示層可以分為iPhone和iPad版本,而商務邏輯層,資料持久層和資訊系統層可以公用,這樣大大減少了我們的工作量。

在IOS平台中,分層架構設計有多種模式:基於同一工程的分層,基於一個工作空間不同工程的分層和靜態連結庫分層。這裡我們簡單介紹基於統一工程的分層。

在本應用中,我們分為三組--PresentationLayer,BusinessLogicLayer和PersistenceLayer,其中PresentationLayer用於放置標識相關的類,BusinessLogicLayer用於放置邏輯層相關類,PersistenceLayer用於放置持久層相關的類。在各個層下面,我們可以按照業務模組劃分,也可以按照組件功能劃分。而PersistenceLayer層還要分為dao和domain兩個組。dao用於放置Data Access Objects,該對象中訪問資料的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

3 結語

以上是所有內容,希望對大家有所協助。

代碼執行個體:http://download.csdn.net/detail/u010013695/6968053

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.