所有示例都使用一个案例类作为PersistentEntity状态,其中一些属性用于chech状态并使用不同的操作。像
这样的东西override def behavior: Behavior = {
case state if state.isEmpty => initial
case state if !state.isEmpty => postAdded
}
可以针对不同的状态使用一个特征的不同病例类吗?例如:
sealed trait OrderState
case object UnitializedOrder
case class OpenedOrder(items: List[String])
case object ClosedOrder
override def behavior: Behavior = {
case UnitializedOrder => initOrderActions
case OpenedOrder => openedOrderActions
case ClosedOrder => skipCommandsAction
}
我看到了一些像
这样的问题处理程序类型
CommandHandler = PartialFunction [(Command,CommandContext [Any],State),Persist] EventHandler = PartialFunction [(Event,State),State]
使用State(trait),所以需要类转换
还是有些可怕的东西?