您的位置:首页 > 财经 > 产业 > 上海建筑建材业网官网_百姓网租房_网站开发培训_广州十大营销策划公司

上海建筑建材业网官网_百姓网租房_网站开发培训_广州十大营销策划公司

2024/10/5 6:30:49 来源:https://blog.csdn.net/ZSS1753936255/article/details/142703311  浏览:    关键词:上海建筑建材业网官网_百姓网租房_网站开发培训_广州十大营销策划公司
上海建筑建材业网官网_百姓网租房_网站开发培训_广州十大营销策划公司

状态模式(State):允许一个对象在其内部状态改变时改变他的行为

很多情况下,我们对象的行为依赖他自身的一个或者多个属性的变化,这种属性的变化我们称为状态。也就是说对象自身的行为依赖了状态。状态改变后,导致了改变了他的行为。从因果关系来分析问题:起因就是状态变化,结果影响了自身的行为变化。所以我们站在 状态的角度的时候,这就是 状态模式。

 

 根据上面的代码,若新增一个状态就是则需要 新增一个实现类即可。不需要 大量的if-else语句来判断逻辑。符合 “开闭原则”。上面的Home类就是相当于一个 Context环境类,他依赖了对应的状态父类。

------------------------------------ 状态模式和 策略模式的对比 ------------------------------------------------------

状态模式的类图与策略模式一模一样,区别在于它们的意图。策略模式会控制对象使用什么策略,而状态模式会自动改变状态。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com