码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式-状态模式

时间:2019-01-21 22:53:45      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:状态   image   对象   http   改变   不同   方式   png   根据   

  1. 什么时候使用状态模式

    通过前面的阐述,我们基本上了解了状态模式的样子。那我们什么时候使用状态模式呢?来看看Martin Fowler的这个重构:Replace Type Code with State/Stategy 你有一个type code,它会影响class的行为,但你无法使用subclassing。

    在你的类里面有个型别码来表示对象的当前状态,这个对象的行为通常依赖这个状态,而且在运行的时候这个状态会改变,那么对象的行为在运行的时候也要跟着改变。一般我们会使用if/else或者switch来根据这个型别码来执行相关操作,现在我们有更好的方式来处理。

  2. 状态和策略的异同

    有人会说,状态模式和策略模式是如此的相似,何必又分开呢?关键在于状态模式和策略模式的意图,状态模式是封装对象内部的状态的,而策略模式是封装算法族的。而且状态模式往往有这种表现:状态影响着对象当前的行为,行为也会倒过来改变对象的状态,这个相互影响是发生内部,也就是说状态模式中对象的行为是由对象的状态驱动的,而策略模式却不同,每次我们往往只使用一种策略来配置当前的系统,改变策略都是由外力来改变的,要使用哪种算法是由外部对象(客户)来驱动的。

  3. 最后经理还总结了:要使用状态模式首先要总结出我们操作的接口(就是鼠标那些点击,双击操作),保证这个接口稳定,如果这个接口经常变化那么就不建议采用状态模式。
  4. 技术分享图片

     

设计模式-状态模式

标签:状态   image   对象   http   改变   不同   方式   png   根据   

原文地址:https://www.cnblogs.com/jiangtao1218/p/10301327.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!