我有一个Ticket
代表服务台票证的实体/JSF 托管 Bean。
它有一个status
属性;当状态设置为closed
我想将closingDate
属性的值更改为当前系统时间。但我认为代码应该包含在 bean 中,因为每次关闭票证时都应该记录时间。
管理它的正确方法是什么?我有几个想法。
- 将 setter 设为私有,并在调用 setter
creationTime
时更改其值 。status
快速且快速,但让 setter 更改了两个属性。此外,迫使我使用 JPA 字段访问(问题不大,因为我已经在使用它,但仍然是一个限制)并且我不清楚当 bean 被序列化时会发生什么。 - 使
status
属性成为 JavaBeans 中描述的绑定属性,并使类成为PropertyChangeListener
其自身。非常正式,但对我来说有点过于复杂了。 close()
将两个属性的设置器设为私有,并添加一个执行这两个操作的非 bean 方法 。我会这样做,但它会让我使用 JSF 变得复杂。- 没做什么。尽可能让 bean 保持愚蠢,并将逻辑移至控制器;交叉手指希望没有人忘记更新这两个属性。
我赞成 1) 或 3),但我想知道是否有更好的方法。