问题:我已经使用蛋糕模式构建了一个组件(特征)系统,它定义了一系列类型并协变地专门化它们(参见家族多态性)。然后我定义了一个组件,它定义了一些参与者和要在这些参与者之间交换的消息。
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$SerializationException
s。
问题:
- 有没有办法在不使设计变平的情况下解决这个问题(即,同时保持蛋糕图案)?
- 我可以使用案例类
writeObject
实现自定义序列化吗?readObject
- 如何避免消息的“外部对象”序列化?