2

我正在使用存储库模式。我正在构建我所有的对象,并且我已经到了在一对多关系上拥有一个对象的地步。

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

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

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

myBlogObject.Add(myAssocFile);

希望有人能告诉我什么更好的长期?

4

2 回答 2

1

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

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

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

于 2012-04-13T14:03:33.840 回答
1

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

于 2012-04-13T14:19:00.617 回答