做object.add或repository.add会更好吗?

时间:2012-04-12 08:17:49

标签: c# design-patterns repository-pattern

我正在使用存储库模式。我正在构建我所有的对象,而且我已经达到了一对多关系的对象。

我想知道它是否更好......

myAssocFile.BlogId = myBlogObject.BlogId;
repository.Add(myAssocFile);

或者它是否更好......

myBlogObject.Add(myAssocFile);

希望有人可以告诉我什么是长期更好的?

2 个答案:

答案 0 :(得分:1)

通过使用repository.add方法,您可以在可识别的位置添加日志记录/错误检查/和其他逻辑。

如果你使用了object.add方法,你需要创建一个局部类并重载/覆盖object.add方法来做同样的事情。对于所有开发人员来说,这并不像存储库方法那样清楚。

因此,在我看来,您应该通过您的存储库进行所有数据存储交互(在您的情况下,有些情况下这不是理想的解决方案)

答案 1 :(得分:1)

存储库模式允许您更好地控制对象的持久性和构造。我要补充的一点是,存储库模式(至少对我来说)本质上更易测试,可以承受依赖注入而不会产生混淆。此外,如果您考虑SOLID对象设计 - 您的父类添加子对象的能力是否会破坏单一责任规则?它应该关心如何添加孩子吗?是否需要了解这个额外的逻辑?如果该逻辑需要更改或需要进行测试,则通过存储库可能更容易实现。