Java 域对象行为如何

Java 域对象行为如何,java,object,dns,Java,Object,Dns,一个新手提出了一个相当愚蠢但完全正确的问题。 上下文:我的“域对象”有一个名称(和一些其他属性,但它们并不重要)。该名称是根据数据库中定义的某些模式生成的。 现在。。。谁应该确定域对象的名称?域对象是否应该确定自己的名称(请注意,这个“名称”可以基于它自己的或其他对象的属性),或者服务是否应该根据模式确定名称,然后调用类似的内容 domainObject.setName(theActualName) 我倾向于采用“服务”方法,但另一方面,似乎该任务应该是一种特定于对象的行为 非常感谢您的回复。

一个新手提出了一个相当愚蠢但完全正确的问题。 上下文:我的“域对象”有一个名称(和一些其他属性,但它们并不重要)。该名称是根据数据库中定义的某些模式生成的。 现在。。。谁应该确定域对象的名称?域对象是否应该确定自己的名称(请注意,这个“名称”可以基于它自己的或其他对象的属性),或者服务是否应该根据模式确定名称,然后调用类似的内容

domainObject.setName(theActualName)
我倾向于采用“服务”方法,但另一方面,似乎该任务应该是一种特定于对象的行为


非常感谢您的回复。

我想您应该看看

如果对象包含计算其名称所需的所有数据,我会将此方法放在该类上。如果此数据基于其他对象的属性,并且父类也包含此包含数据的子对象,我将再次将其放在父类上


保持简单。如果我真的不需要,我不会介绍服务类。在DDD术语中,您应该将域相关逻辑放在域类中。

我认为您应该看看

如果对象包含计算其名称所需的所有数据,我会将此方法放在该类上。如果此数据基于其他对象的属性,并且父类也包含此包含数据的子对象,我将再次将其放在父类上


保持简单。如果我真的不需要,我不会介绍服务类。在DDD术语中,您应该将域相关逻辑放在域类中。

这是一个包含逻辑的域对象?如果是的话,我宁愿给它一个DAO的参考,让它自己决定它的名字。这样,您的逻辑将接近您的数据

这是一个包含逻辑的域对象?如果是的话,我宁愿给它一个DAO的参考,让它自己决定它的名字。这样,您的逻辑将接近您的数据

有几个问题与此有关:

  • 你需要对名字进行某种管理吗?(一个例子是一个按名称查找对象的目录)如果是,请考虑使用服务。(另一种方法是安排每个域对象在计算出其名称后自行注册。)
  • 域对象在创建和命名后是否在逻辑上独立于数据库?如果是这样,那么通过将数据库依赖性放在服务中来保持它们的独立性将是一个好的实践

  • 如果域对象无论如何都要绑定到数据库,并且不需要集中管理名称,那么我认为拥有域对象名称本身会导致更大的损失。

    这方面有几个问题:

  • 你需要对名字进行某种管理吗?(一个例子是一个按名称查找对象的目录)如果是,请考虑使用服务。(另一种方法是安排每个域对象在计算出其名称后自行注册。)
  • 域对象在创建和命名后是否在逻辑上独立于数据库?如果是这样,那么通过将数据库依赖性放在服务中来保持它们的独立性将是一个好的实践
  • 如果域对象无论如何都要绑定到数据库,并且如果不需要集中管理名称,那么我认为拥有域对象名称本身会带来更大的影响。

    让我弄清楚一些事情(呃)-一般的工作流程如下所示:用户在表单中输入一些数据,上载一个文件,然后整个过程都保存在一个内容管理系统中(想想EMC Documentum或Sharepoint)。域对象实际上是用户输入的数据+内容+根据不同条件确定的一些其他属性-生命周期阶段、对象名称、对象安全性等。让我弄清楚一些事情(呃)-一般的工作流如下所示:用户在表单中输入一些数据,上载一个文件,然后整个过程都保存在一个内容管理系统中(想想EMC Documentum或Sharepoint)。域对象实际上是用户输入的数据+内容+根据不同条件确定的一些其他属性-生命周期阶段、对象名称、对象安全性等。