《游戏编程模式》读书笔记之二 - 状态模式

有限状态机FSM

  • 多个状态
  • 输入事件、状态转移

分层状态机HFSM

 

状态模式(更好的实现状态机)

  • 定义状态接口或抽象类,为每个状态定义类
  • 进行状态委托
  • 入口行为、出口行为
  • 对于HFSM,可用子类继承父类,父类和子类各为一层

有限状态机和状态模式的区别

在CSDN论坛的一个帖子讲:有限状态机与状态模式的区别
看到阎宏的跟帖,说的很贴切,毕竟大神级人物
 
后来又看到另一篇帖子:大家觉得阎宏的《java与模式》写的怎么样
http://bbs.csdn.net/topics/30394369,跟帖很精彩,感觉程序员的世界就应该是一个武林,天下风云出我辈
 
(1)“大多是情况下,状态实例没有其它数据字段,应当使用单例模式”,这是错误的,单例模式不是干这个的。
  • 复杂一点的状态都有继承机构,单例不适合继承
  • 应当使用不变模式(来自于java与模式一书)

(2)状态机比状态模式广泛
  • 状态模式是对象的行为描述,接收状态的转换
  • 状态机着重于定义状态转换,一个状态机的实现可能使用多个设计模式,状态模式只是之一
posted @   强混劣势路  阅读(235)  评论(0编辑  收藏  举报
编辑推荐:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
点击右上角即可分享
微信分享提示