Java 域对象行为如何
一个新手提出了一个相当愚蠢但完全正确的问题。 上下文:我的“域对象”有一个名称(和一些其他属性,但它们并不重要)。该名称是根据数据库中定义的某些模式生成的。 现在。。。谁应该确定域对象的名称?域对象是否应该确定自己的名称(请注意,这个“名称”可以基于它自己的或其他对象的属性),或者服务是否应该根据模式确定名称,然后调用类似的内容Java 域对象行为如何,java,object,dns,Java,Object,Dns,一个新手提出了一个相当愚蠢但完全正确的问题。 上下文:我的“域对象”有一个名称(和一些其他属性,但它们并不重要)。该名称是根据数据库中定义的某些模式生成的。 现在。。。谁应该确定域对象的名称?域对象是否应该确定自己的名称(请注意,这个“名称”可以基于它自己的或其他对象的属性),或者服务是否应该根据模式确定名称,然后调用类似的内容 domainObject.setName(theActualName) 我倾向于采用“服务”方法,但另一方面,似乎该任务应该是一种特定于对象的行为 非常感谢您的回复。
domainObject.setName(theActualName)
我倾向于采用“服务”方法,但另一方面,似乎该任务应该是一种特定于对象的行为
非常感谢您的回复。我想您应该看看 如果对象包含计算其名称所需的所有数据,我会将此方法放在该类上。如果此数据基于其他对象的属性,并且父类也包含此包含数据的子对象,我将再次将其放在父类上
保持简单。如果我真的不需要,我不会介绍服务类。在DDD术语中,您应该将域相关逻辑放在域类中。我认为您应该看看 如果对象包含计算其名称所需的所有数据,我会将此方法放在该类上。如果此数据基于其他对象的属性,并且父类也包含此包含数据的子对象,我将再次将其放在父类上
保持简单。如果我真的不需要,我不会介绍服务类。在DDD术语中,您应该将域相关逻辑放在域类中。这是一个包含逻辑的域对象?如果是的话,我宁愿给它一个DAO的参考,让它自己决定它的名字。这样,您的逻辑将接近您的数据 这是一个包含逻辑的域对象?如果是的话,我宁愿给它一个DAO的参考,让它自己决定它的名字。这样,您的逻辑将接近您的数据 有几个问题与此有关:
如果域对象无论如何都要绑定到数据库,并且不需要集中管理名称,那么我认为拥有域对象名称本身会导致更大的损失。这方面有几个问题: