五. 状态模式
1. 定义函数
type State func(int) State
2. 定义几种状态
var startState = func() State {
fmt.Println("start")
return func(i int) State {
if i == 0 {
return pauseState()
} else {
return stopState()
}
}
}
var pauseState = func() State {
fmt.Println("pause")
return func(i int) State {
return stopState()
}
}
var stopState = func() State {
fmt.Println("end")
return nil
}
3. 使用
state := startState()
state = state(1)