大话设计模式-读书笔记8状态模式

27人阅读 评论(0) 收藏 举报
分类:

老规矩,上概念:

状态模式state

状态模式:当一个对象的内在状态改变时允许改变其行为,类似该对象改变了其类。
当控制一个对象状态转换的条件表达式过于复杂时的,将状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。
这里写图片描述

状态模式的好处和用处

状态模式的好处:将特定状态相关的行为局部化,并且将不同的行为分割开来。(将特定的状态相关行为都放入一个对象中,由于与状态相关的代码都存在一个类中,通过定义新的子类可以很容易地增加新的状态和转换)

状态模式通过把各种状态转移逻辑分布到state地子类之间,减少相互间的依赖。

什么时候使用:当一个对象的行为取决于它的状态,并且必须在运行时刻根据状态改变它的行为时,可以考虑使用
业务需求:某项业务有多个状态,都是一些枚举常量,状态的变化都是依靠大量的分支判断语句实现,(将每种业务都定义为state子类,这些对象就不依赖其他对象而独立变化,当需要更改需求,增加或减少业务状态改变流程,就不需要通篇都改代码了)

还是不习惯在文章中插入代码片段,我将代码放到github仓库中了。

这里写图片描述

代码地址:
https://github.com/FastStonewkx/hometown

就这些吧,太晚了。

查看评论

<十二>读<<大话设计模式>>之状态模式

对于状态模式,>是以人从上班到下班到加班的状态来展开讲述的。状态模式其实就是某一个对象在某个过程或者时间的一个状态记录,但是这个状态的顺序不能发生变化,在程序设计方面可能要比其他模式稍微复杂点,请待我...
  • jzhf2012
  • jzhf2012
  • 2014-11-06 13:22:27
  • 1744

大话设计模式C++实现-第16章-状态模式

一、UML图 二、概述 下面是来自书本和网络的对状态模式的定义和分析: (1)状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。看起来,状态模式好像是神通广大很厉害似的...
  • XD_lixin
  • XD_lixin
  • 2014-11-18 09:59:09
  • 1393

《大话设计模式》java实现之状态模式

状态模式、策略模式、责任链模式三者非常像,今天花了很多时间查找他们之间的不同,博客https://www.cnblogs.com/xibei666/p/6858145.html总结得很好,这里简单总结...
  • linlinxie
  • linlinxie
  • 2017-11-17 16:09:44
  • 189

大话设计模式读书笔记

主题 概要 设计模式 大话设计模式读书笔记 编辑 时间 新建 20170423 序号 参考资料 1 大话设计模式 重新看了一遍设计模式...
  • shaozhenged
  • shaozhenged
  • 2017-04-23 17:32:21
  • 963

大话设计模式—状态模式

在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。大话设计...
  • lmb55
  • lmb55
  • 2016-03-28 20:26:40
  • 1370

大话设计模式 读书笔记

大话设计模式 读书笔记 着重从c#代码角度分析 学习心得: 学设计模式,不需要是否能立刻理解和记忆,无需着力首先是UML图 再从设计模式到UML图 从UML图到代码 其次知道各种模式的应用场景即可...
  • jiangdmdr
  • jiangdmdr
  • 2017-03-01 18:50:25
  • 589

C语言实现状态设计模式

#include #include #include #ifndef VIRTUAL #define VIRTUAL #endif #ifndef DELETE #define DELETE...
  • ma52103231
  • ma52103231
  • 2014-05-09 18:13:23
  • 1113

《大话设计模式》读后感

第一次读《大话设计模式》,是在刚接触C#的时候。疲累于大部头的官方教材中时,无意间翻开了这本生动有趣的书,甚是眼前一亮。由于当时C#基础薄弱,只是把它当小说来看,如饥似渴,饶有滋味,一口气看到凌晨四点...
  • u013798619
  • u013798619
  • 2014-12-22 05:49:45
  • 2483

【设计模式】学习笔记14:状态模式(State)

认识状态模式 假设有一个糖果机, 它的工作状态图如下:要用代码实现糖果机的功能, 如果不用状态模式: 一种方法是创建一个类,它的作用就是一个状态机,对每一个动作,我们都创建了一个对应的方法,这些方法...
  • shuangde800
  • shuangde800
  • 2013-08-22 00:15:46
  • 22001

大话设计模式之状态模式

  • 2012年02月03日 14:42
  • 81KB
  • 下载
    个人资料
    持之以恒
    等级:
    访问量: 410
    积分: 393
    排名: 19万+
    文章存档
    最新评论