感觉就是策略模式强化版,但是绝非简单的通过状态来管理行为之间的逻辑关系,而是把行为当作状态,简单的说在什么状态下决定执行什么行为是有效的,同时改变下一行为(状态),还有一点是所有代码中没有IF,让当前行为决定做那些事情是有效的.
书上是这么说的:允许对象在内部状态改变是改变他的行为,对象看起来好像是修改了它的类.
以下以冰箱里面有一头鹿怎样把大象放进冰箱的状态关系为例说明:
- 打开冰箱
- 把鹿拿出冰箱
- 把大象塞进去
- 把冰箱门关上
);
icebox.Add(e_1);
Console.Read();
}
}