这是我在SO上问过的一个问题,但在这里可能会得到更好的讨论...
在我工作的地方,我们已经在这个问题上来回多次,正在寻找健全性检查。问题是:业务对象应该是数据容器(更像DTO),还是应该包含可以对该对象执行某些功能的逻辑。
示例-以一个客户对象为例,它可能包含一些通用属性(名称,ID等),该客户对象是否还应包含函数(保存,计算等)?
一条推理路线说将对象与功能(单一责任主体)分开,并将功能放在业务逻辑层或对象中。
另一道理说,不,如果我有一个客户对象,我只想调用Customer.Save并完成它。如果使用该对象,为什么需要了解另一个类来节省客户?
我们的最后两个项目已将对象与功能分开,但是关于新项目的争论再次出现。
哪个更有意义,为什么?