假设我有以下
type Stater interface{
name() string
doTransition()
driver.Valuer
}
type Session struct {
username string
currentState Stater
}
我正在为每个用户会话构建一个FSM。因此每个会话(模型)应该在数据库中有一列存储当前状态。每个状态都是一个实现Stater的类型,它包含(Name(),doTransition()等),通过实现driver.Valuer
现在当前状态被正确序列化。我现在需要的是,当我从数据库中获取会话时,Session.CurrentState
(类型为Stater)得到正确的反序列化并分配了正确的具体类型。我知道sql.Scanner
接口,但我不知道究竟应该实现什么。谢谢。