欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

设计模式 - 状态模式

最编程 2024-10-05 13:38:53
...

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

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

 

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

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

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