做 object.add 还是 repository.add 更好

本文关键字:add 更好 repository 还是 object | 更新日期: 2023-09-27 18:30:55

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

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

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

还是做更好...

myBlogObject.Add(myAssocFile);

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

做 object.add 还是 repository.add 更好

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

如果你做了object.add

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

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

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