策略模式 VS 状态模式
首先,看下两个设计模式的定义
- 策略模式:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户
- 状态模式:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为
通过一张表格总结其区别
策略模式 | 状态模式 |
---|---|
行为型模式 | ~ |
多个类区别不同的行为(算法) | 多个类区别不同的状态 |
一组方案或算法的相互替换,采取何种策略由外部条件决定 | 主要解决复杂逻辑处理的状态迁移,这个过程由对象内部条件决定 |
策略类不依赖上下文 | 状态类依赖上下文 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 凉月の博客!
评论