我们正在构建一个可以处理从web应用程序或拨号器应用程序代理的帖子的服务。用户可以通过电子邮件、短信、电话或应用程序确认或取消约会。
复杂的因素是,对于应用程序和电子邮件,你会得到一个离散的“确认”或“取消”操作,而在电话通话中,你会得到一个数字按下,而在短信中,你会得到一个关键字,比如“确认”或"C“。(更复杂的是,对于不同的帐户,关键字或数字将解析为不同的操作。)
这是我的问题。我们接收一个post,并将其序列化为一个包含所有相关信息的UserInteraction
POJO,并将其持久化到数据库中。不幸的是,就业务逻辑而言,此POJO不包含用户正在采取的离散操作的抽象。
我是否应该在POJO中添加类似如下的内容:
@Transient
private ResponseType responseType;
或者,这个附加属性是否应该作为单独的参数传递其生命周期中的所有方法?
如果我将ResponseType
分开,方法签名将如下所示:
public GenericResponse handleConfirmation(UserInteraction userInteraction, AppointmentInfo apptInfo, ResponseType responseType)
发布于 2017-07-06 01:55:52
如果考虑到重构成本,那么在POJO中使用瞬态属性似乎是足够公平的。但是,在不了解其他环境因素和API依赖的情况下,很难区分这两种解决方案的效果。
发布于 2017-07-06 03:36:04
国际海事组织根据你的决定是否'responseType‘是'UserInteraction’抽象的一部分,即。它能被认为是“用户交互”的一个属性吗?
根据您的描述,我认为是--解决实际的响应(即.CONFIRM、C等)到相应的离散枚举/类型,在POJO属性上设置,然后在db中持久化。
https://stackoverflow.com/questions/44932688
复制相似问题