这是一个来自新手的相当愚蠢但完全有效的问题。 上下文:我的“域对象”有一个名称(和一些其他属性,但它们并不重要)。该名称是根据数据库中定义的一些模式生成的。 现在...谁应该确定域对象的名称?域对象是否应该确定它自己的名称(请注意,这个“名称”可以基于它自己或其他对象的属性),或者服务应该根据模式确定名称,然后调用类似的内容
domainObject.setName(theActualName)
我倾向于遵循“服务”方法,但另一方面,此任务似乎应该是特定于对象的行为。
非常感谢您的回复。
最佳答案
我认为你应该看看Tell Don't Ask Principle
如果对象包含计算其名称所需的所有数据,我会将此方法放在该类上。如果这个数据是基于其他对象的属性并且父类也包含这个包含数据的子对象,我会再次放在父类上。
保持简单。如果我真的不需要,我不会引入服务类。用 DDD 术语来说,您应该将域相关逻辑放在域类中。
关于java - 域对象行为如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7079522/