感觉就是策略模式强化版,但是绝非简单的通过状态来管理行为之间的逻辑关系,而是把行为当作状态,简单的说在什么状态下决定执行什么行为是有效的,同时改变下一行为(状态),还有一点是所有代码中没有IF,让当前行为决定做那些事情是有效的.

书上是这么说的:允许对象在内部状态改变是改变他的行为,对象看起来好像是修改了它的类.

以下以冰箱里面有一头鹿怎样把大象放进冰箱的状态关系为例说明:

  1. 打开冰箱
  2. 把鹿拿出冰箱
  3. 把大象塞进去
  4. 把冰箱门关上
);
icebox.Add(e_1);
Console.Read();
}
}

 

head first 设计模式学习随笔(11)----状态模式

相关文章: