知识卡片

转换位置选择

普通读书笔记卡 · 1922.h.1

内容

状态转换可以由上下文控制,也可以由状态对象控制。前者集中,后者局部自治。发散:转换规则若强依赖当前状态,放进状态对象会更内聚。

参考来源

- 位置:第5章《行为型模式》5.8节「State(状态)」9.实现第1点「谁定义状态转换」(源文件:_epub-src/OEBPS/Text/part0088.xhtml) - 结论依据:原文明确说明如果转换准则是固定的可在Context中完全实现,若让State子类自身指定后继状态和转换时机通常更灵活合适,直接支持卡片对状态转换可以由上下文控制也可以由状态对象控制、前者集中后者局部自治的论述。 - 原始内容:"State模式不指定哪个参与者定义状态转换准则。如果该准则是固定的,那么它们可在Context中完全实现。然而若让State子类自身指定它们的后继状态以及何时进行转换,通常更灵活、更合适。"