两位开发人员对哪种模式是正确的模式存在争议。如果有人能告诉我谁是对的,为什么会这样,我会很高兴。
开发者1:
类a有两个功能:
Remove(int item);
Save();
推理:
a.Remove(1);
a.Remove(3);
a.Save();
这样,您可以从其内部列表中删除项目,而不保存对数据库的更改。只要调用a.Save(),对象的内部状态就会保存到数据库中。
开发者2:
a类只有一个功能
Remove(List<int> items);
推理:
a.Remove(new List<int>{1,2});
通过这种方式,您不必记住保存和课程,但仍然只能保存一次。
是否有设计模式或其他证明正确方式的文件或仅仅是风格?
答案 0 :(得分:1)
由于这是一个非常合成的例子,很难说出了解真实背景的正确方法。
在大多数实际情况下,首先解决方案更好,因为需要减少数据库请求数量和持续时间。
查看存储库和工作单元模式。
常见的活动顺序是:
取决于您可能
的工作单元实施情况所以,它很灵活。单方法解决方案不太灵活,特别是如果有一次你需要添加另一个动作,即
Remove(1,2);
Add(5);
粗略地谈论数据访问和域层,从视角来看,它可能导致数据库逻辑泄漏,而其他当前被认为是反模式(对于大多数情况)的事情,如Active Record。