在我工作的地方,我们已经在这个主题上反复讨论了很多次,并且正在寻找健全性检查。这里的问题是:业务对象应该是数据容器(更像是 DTO)还是应该包含可以在该对象上执行某些功能的逻辑。
示例 - 以客户对象为例,它可能包含一些常见属性(名称、ID 等),该客户对象是否还应包含函数(保存、计算等)?
一种推理方式是将对象与功能分开(单一责任主体)并将功能放在业务逻辑层或对象中。
另一种推理方式是,不,如果我有一个客户对象,我只想调用 Customer.Save 并完成它。如果我正在消费对象,为什么我需要知道如何拯救客户?
我们最近的两个项目将对象与功能分开,但在一个新项目上再次引发了争论。哪个更有意义?
编辑
这些结果与我们的辩论非常相似。一票或另一票完全改变了方向。还有人想加他们的 2 美分吗?
编辑
尽管答案样本很小,但似乎大多数人认为业务对象中的功能是可以接受的,只要它很简单,但持久性最好放在单独的类/层中。我们会试一试。谢谢大家的意见...