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

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




















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


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











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

















状态模式是把各种状态封装成不同的类。
基于委托的状态模式
委托部分:
我们需要在Context类中使用委托,而在Client端不变:
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步