2011-05-24 61 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

相关问题