2011-05-24 69 views
1

我在Mac上開發Cocoa應用程序相對較新,來自.NET C#背景。我想知道一個Cocoa Model對象是否應該包含自己的數據訪問方法,比如Create,Update和Delete等等。蘋果文檔似乎傾向於模型的所有事情,但是看起來並不正確的Model(即UserModel)有一個名爲GetUsers的方法,它返回一組UserModel!Cocoa Models應該包含自己的數據訪問方法嗎?

在ASP.NET MVC中,我所有的模型只是業務對象(即用戶)或視圖的表示形式。使用上面的例子,控制器有責任調用一個服務(業務層或其他類型的事物)並返回一個UserModel對象列表。同一個控制器也會用數據填充UserModel,並將其作爲參數傳遞給其他服務,然後可以執行更新或刪除。

關於這個問題的任何想法將不勝感激,因爲蘋果公司的示例代碼往往相當簡單,並沒有真正觸及CRUD類型的操作。

在此先感謝。

回答

1

我也來自.NET背景,我同意蘋果有時會混淆一些東西。我傾向於保持我的域模型清潔並實施數據訪問服務。唯一不同的是,如果我使用CoreData,其中我的域對象也是CoreData對象(因此它們具有基礎數據持久性),但我仍然使用存儲服務/數據訪問服務來檢索並保存。

如果你想有一個存儲服務/ DAL我用那麼我的博客文章的一個包含它.... CoreData Example

+0

優秀西蒙感謝您的回答,正是我要尋找的一個例子。出於興趣,可以向我展示如何在Xcode中組織Mac項目(簡單屏幕截圖)以集成數據訪問服務。我通常將這些作爲Visual Studio中的單獨項目並創建引用。我試圖用Xcode中的文件夾來做到這一點,但不知道它的正確方向。再次感謝您的所有幫助,以及與經驗豐富的.NET開發人員進行交流的經驗。 – Cragly 2011-05-24 11:44:41

+0

你看過我網站上的示例代碼嗎?它有一個簡單的結構集。堅持objc,它需要一段時間,但我喜歡它,否則我不會成立專門的機構! – 2011-05-24 11:46:27

+0

乾杯西蒙,再次感謝並祝賀看起來像個好機構。保持良好的工作! – Cragly 2011-05-24 13:27:30

相關問題