我正在研究使用State
模式将我的代码中的大switch
语句转换为更易于管理的块。我可以得到关于国家行为模式的一些说明吗?
我一直在阅读关于它的Design Patterns book,并且还在看教程点示例here。
该示例中的代码对我来说看起来不对,因为作者从Context
以外调用State
功能。那是对的吗?
这是我的理解,它应该是状态的包装的上下文,并且State
更改应该最有可能从每个State
对象中处理。否则,它有点击败了目的?
在谷歌上搜索,试图找到设计模式一书State
模式如下图:
我遇到this example,这正符合我的想法更多。 所以,我正确地认为教程点示例不正确,并且State
应该由状态自己更改,或者Object
通过调用context.request()
来保存Context
?
有没有像在教程点示例中那样做的有效案例?我无法亲自看到它,如果你这样做,你只会以另一个switch
或if
声明结束。