我目前正在制作一个快递服务网页 - 客户可以放弃订单 - 快递可以更改订单的状态(新的,接受的,交付中的,交付的,取消的)。我使用状态设计模式来描述这一点,因为它对我来说最有意义。
我想将所有订单保存在关系数据库中(我使用的是 H2 和 Hibernate/JPA) - 但我不知道如何在加载对象时恢复状态。
想到了两种方法:
为每个状态创建一个表,并将对象保存在与其状态对应的表中(我不知道如何(如果可能的话)实现这一点)。
给订单类一个与其所处状态相对应的属性 - 然后在再次加载对象时将对象的内部状态设置为等于相关状态。但这不会破坏状态设计模式的目的吗?目标不是最小化 if/else 语句和开关墙吗?
我应该怎么办?有没有更好的方法来解决这个问题?
幕布斯6054654
相关分类