`
锅巴49
  • 浏览: 164580 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

策略模式与状态模式区别

阅读更多

这两个模式UML相同,其实他们的运用场景有很大区别。

 

1、策略模式

 

     封装算法,让使用者可以更换不同的算法。变is a为has a 用组合来代替继承。

     一旦置入算法,不会因使用者的内部状态来改变算法。

     采用哪种算法,是由使用者掌握的。

 

2、状态模式

 

     对象的内部状态决定它的行为。不同的状态有不同的行为,不同的行为又切换不同的状态。

     当方法内出现很多if else时可以考虑使用状态模式。

     状态模式重要的一点是在行为执行时,状态的变更。

       

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics