在線客服系統(tǒng)
十三年專注于網(wǎng)站建設(shè)與互聯(lián)網(wǎng)應(yīng)用開發(fā),低調(diào)、有情懷的網(wǎng)絡(luò)應(yīng)用服務(wù)商!
南昌百恒科技微信公眾號 掃一掃關(guān)注
tel-icon全國服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒科技微信公眾號

采用Core Data 分層架構(gòu)設(shè)計

百恒 2017-05-10 17:57:46 3559
? ? ? ?堆棧創(chuàng)建都是在應(yīng)用程序委托對象中實現(xiàn)的,之前的文章中南昌網(wǎng)絡(luò)公司-百恒網(wǎng)絡(luò)所介紹的Core Data應(yīng)該只出現(xiàn)在數(shù)據(jù)持久層,Core Data中的對象NSManagedObjectContext、NSPersistentStore Coordinator、NSManagedObjectModel和NSManagedObject等都不能出現(xiàn)在其他層中。采用分層設(shè)計必須遵守這個規(guī)范。
? ? ? ?將重新構(gòu)建Core Data堆棧的代碼移植到DAO類(CoreDataDAO)中,其中CoreDataDAO是所有DAO類的父類。CoreDataDAO類的代碼如下:

南昌APP開發(fā)南昌APP開發(fā)

? ? ??然后讓NoteDAO繼承CoreDataDAO,并且增加了NoteManagedObject被管理實體類,這樣數(shù)據(jù)持久層工程中的類如下表所述。

南昌APP開發(fā)

? ? ? ?Note和NoteManagedObject看起來有點重復(fù),但是它們有不同的角色,這是一個非常重要的問題。如果不采用分層設(shè)計,我們完全可以采用NoteManagedObject,但是由于這里采用了分層設(shè)計,NoteManagedObject對象必須被嚴(yán)格限定在持久層中使用,而實體還會出現(xiàn)在表示層和業(yè)務(wù)邏輯層中,因此設(shè)計了Note類用在其他層中。在持久層中使用時,要在Note和NoteManagedObject之間轉(zhuǎn)換。這個工作看起來比較麻煩,但是隨著業(yè)務(wù)復(fù)雜度的增加,它的優(yōu)點便會呈現(xiàn)出來。

? ? ? ?以上文章僅供技術(shù)人員參考交流,想了解更多南昌APP開發(fā)、網(wǎng)站建設(shè)、微信開發(fā)等方面的資訊的朋友,歡迎來電咨詢百恒網(wǎng)絡(luò),我們專業(yè)為您解答!

400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號

歡迎您的光顧,我們將竭誠為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
售后服務(wù) 售后服務(wù)
 
×