1

问题:我已经使用蛋糕模式构建了一个组件(特征)系统,它定义了一系列类型并协变地专门化它们(参见家族多态性)。然后我定义了一个组件,它定义了一些参与者和要在这些参与者之间交换的消息。

trait BasicTypes {
    type T1 <: T1Interface
    type T2 <: T2Interface

    // other stuff
}

trait MyActors { self: BasicTypes =>
  case class Msg1(v1: T1, v2: T2)
  case class Msg2(name: String)

  class MyActor { ... }
}

问题是蛋糕变大了,可能包括不可序列化的东西。结果是多个akka.remote.MessageSerializer$SerializationExceptions。

问题

  • 有没有办法在不使设计变平的情况下解决这个问题(即,同时保持蛋糕图案)?
  • 我可以使用案例类writeObject实现自定义序列化吗?readObject
  • 如何避免消息的“外部对象”序列化?
4

0 回答 0