我也设计模式——17.State
状态模式是把各种状态封装成不同的类。

关于Context类的实现,不太同于Strategy,虽然原理是一样的:




















还有,Context的ctor是基于单件模式的,可以使用注册工厂来简化。
在Client端的调动方式,就这么简单:


基于委托的状态模式
委托部分:











我们需要在Context类中使用委托,而在Client端不变:

















状态模式是把各种状态封装成不同的类。
基于委托的状态模式
委托部分:
我们需要在Context类中使用委托,而在Client端不变: