我们正在构建一项服务,可以处理从网络应用程序或拨号器应用程序代理的帖子。用户可以通过电子邮件、短信、电话或应用程序确认或取消预约。
复杂的因素是,通过应用程序和电子邮件,您会得到一个离散的“确认”或“取消”操作,而通过电话,您会得到一个数字按下,而通过短信,您会得到一个关键字,例如“确认”或“C” 。 (更复杂的是,对于不同的帐户,关键字或数字将解析为不同的操作。)
这是我的问题。我们收到一个帖子并将其序列化为一个 UserInteraction
POJO,其中包含所有相关信息并保存到数据库中。不幸的是,就业务逻辑而言,该 POJO 不包含用户正在执行的离散操作的抽象。
我应该向 POJO 添加类似以下内容:
@Transient
private ResponseType responseType;
或者这个附加属性应该作为单独的参数传递到其生命周期中的所有方法吗?
如果我要将 ResponseType
分开,方法签名将如下所示:
public GenericResponse handleConfirmation(UserInteraction userInteraction, AppointmentInfo apptInfo, ResponseType responseType)
最佳答案
如果考虑重构成本,那么在 POJO 中使用 transient 属性似乎足够合理。但在不了解其他周围因素和 API 依赖性的情况下,很难区分这两种解决方案的效果。
关于java - Spring 业务对象建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44932688/