我在Mac上开发Cocoa应用程序相对较新,来自.NET C#背景。我想知道一个Cocoa Model对象是否应该包含自己的数据访问方法,如Create,Update和Delete等.Apples文档似乎倾向于模型做所有事情,但似乎没有一个模型(即UserModel)有一个名为GetUsers的方法,它返回UserModels的集合!
在ASP.NET MVC中,我的所有模型都只是Business对象(即用户)或View的表示。使用上面的示例,控制器有责任调用服务(业务层或类似的东西)并获取UserModel对象列表。同一个控制器也会使用数据填充UserModel,并将其作为参数传递给其他可以执行Update或Delete的服务。
对于这个主题的任何想法都会非常感激,因为Apple的示例代码往往相当简单,并且没有真正触及CRUD类型的操作。
提前致谢。
答案 0 :(得分:1)
我也来自.NET背景,我同意Apple有时会混淆一些事情。我倾向于保持我的域模型清洁并实现数据访问服务。我唯一不同的做法是使用CoreData,其中我的域级对象也是CoreData对象(因此它们具有底层数据持久性)但是我仍然使用存储服务/数据访问服务来检索和保存。
如果你想要一个我使用的存储服务/ DAL的例子,那么我的一篇博文包含它.... CoreData Example