可以是PersistentEntity状态类型的特征吗?

时间:2018-02-21 14:13:39

标签: scala lagom

所有示例都使用一个案例类作为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
}

我看到了一些像

这样的问题
  1. 处理程序类型

    CommandHandler = PartialFunction [(Command,CommandContext [Any],State),Persist] EventHandler = PartialFunction [(Event,State),State]

  2. 使用State(trait),所以需要类转换

    1. 用于快照的每个州子类型的序列化。
    2. 还是有些可怕的东西?

0 个答案:

没有答案