gpt4 book ai didi

java - 谁定义了状态模式中的状态转换?

转载 作者:太空狗 更新时间:2023-10-29 22:55:46 25 4
gpt4 key购买 nike

我理解 State 模式 可用于对根据状态改变行为的对象建模,Context 可以具有的各种状态被封装在具体类中表示 State 接口(interface)。我不清楚的是这种模式中的状态转换是如何发生的。各个 states 是否知道并决定谁跟随它们,还是 Context 决定它接下来将进入哪个状态?

最佳答案

摘自 GOF 设计模式一书(在实现部分):

1。谁定义状态转换?状态模式不指定哪个参与者定义状态转换的标准。如果标准是固定的,那么它们可以完全在 Context 中实现。然而,让 State 子类自己指定它们的后继状态以及何时进行转换通常更灵活和合适。这需要向 Context 添加一个接口(interface),让 State 对象显式设置 Context 的当前状态。

以这种方式分散转换逻辑,可以轻松地通过定义新的 State 子类来修改或扩展逻辑。去中心化的一个缺点是一个 State 子类将至少知道另一个 State 子类,这会引入子类之间的实现依赖关系。

关于java - 谁定义了状态模式中的状态转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14434187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com