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

有限状态机FSM

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

分层状态机HFSM

 

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

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

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

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

(2)状态机比状态模式广泛
  • 状态模式是对象的行为描述,接收状态的转换
  • 状态机着重于定义状态转换,一个状态机的实现可能使用多个设计模式,状态模式只是之一
posted @ 2017-08-31 06:06  强混劣势路  阅读(233)  评论(0编辑  收藏  举报