Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring业务对象建模_Java_Spring_Oop - Fatal编程技术网

Java Spring业务对象建模

Java Spring业务对象建模,java,spring,oop,Java,Spring,Oop,我们正在构建一个服务,可以处理从web应用程序或拨号程序代理的帖子。用户可以通过电子邮件、短信、电话或应用程序确认或取消约会 复杂的因素是,通过应用程序和电子邮件,你会得到一个离散的“确认”或“取消”操作,而通过电话,你会得到一个数字按下,通过短信,你会得到一个关键字,如“确认”或“C”。(更复杂的是,对于不同的帐户,关键字或数字将解析为不同的操作。) 这是我的问题。我们收到一篇帖子,并将其序列化为一个UserInteractionPOJO,其中包含所有相关信息,并保存到数据库中。不幸的是,就业

我们正在构建一个服务,可以处理从web应用程序或拨号程序代理的帖子。用户可以通过电子邮件、短信、电话或应用程序确认或取消约会

复杂的因素是,通过应用程序和电子邮件,你会得到一个离散的“确认”或“取消”操作,而通过电话,你会得到一个数字按下,通过短信,你会得到一个关键字,如“确认”或“C”。(更复杂的是,对于不同的帐户,关键字或数字将解析为不同的操作。)

这是我的问题。我们收到一篇帖子,并将其序列化为一个
UserInteraction
POJO,其中包含所有相关信息,并保存到数据库中。不幸的是,就业务逻辑而言,此POJO不包含用户正在执行的离散操作的抽象

我是否应该在POJO中添加以下内容:

@Transient
private ResponseType responseType;
或者这个附加属性应该作为一个单独的参数通过其生命周期中的所有方法吗

如果我将
ResponseType
分开,方法签名将是这样的:

public GenericResponse handleConfirmation(UserInteraction userInteraction, AppointmentInfo apptInfo, ResponseType responseType) 

如果考虑到重构成本,那么在POJO中使用瞬态属性就足够公平了。但是,如果不了解其他环境因素和API依赖关系,就很难区分这两种解决方案的效果

如果考虑到重构成本,那么在POJO中使用瞬态属性就足够了。但是,如果不了解其他环境因素和API依赖关系,就很难区分这两种解决方案的效果

IMO根据“responseType”是否是“UserInteraction”抽象的一部分来决定,即它是否可以被视为“UserInteraction”的一个属性


根据您的描述,我认为是的——将实际响应(即确认、C等)解析为相应的离散枚举/类型,在POJO属性上设置,然后保存在db中。

IMO根据“responseType”是否是“UserInteraction”抽象的一部分来决定,也就是说,它是否可以被视为“用户交互”的属性


根据您的描述,我认为是的——将实际响应(即确认、C等)解析为相应的离散枚举/类型,在POJO属性上设置,然后在db中持久化。

不幸的是,它没有在db级别建模,POJO是由Hibernate持久化的实体。它可以在对象上设置,但它只能作为对象的一个属性使用瞬态decorator。不幸的是,它没有在db级别建模,POJO是一个由Hibernate持久化的实体。它可以在对象上设置,但它只能作为对象的一个属性使用瞬态装饰器