gpt4 book ai didi

design-patterns - 状态模式与 ENUM

转载 作者:行者123 更新时间:2023-12-04 09:36:50 25 4
gpt4 key购买 nike

有时需要为对象的状态提供支持。据我了解,有两种方法:

  • 枚举(简单)
  • STATE模式(OC原理)

  • 很明显,需要为此目的使用状态模式(我不确定)。

    但是阅读其他代码时,我经常遇到 enum 根本没有状态模式。
    国家模式有力量吗?

    最佳答案

    为什么要使用状态模式?去除条件逻辑重复,用多态替换条件代码。

    我们什么时候有条件逻辑重复?当我们有许多取决于状态的 Action 时,因此您必须在每个 Action 中复制您的条件逻辑。当你有很多状态时,这会变得很烦人。此外,代码重复意味着您应该在添加新状态时更新重复代码的每个副本。

    因此,如果我没有重复的条件逻辑,我宁愿使用基于枚举的状态,而不是创建具有许多状态类的新类层次结构。有时我什至更喜欢条件逻辑重复:例如当我有很多状态,但只有很少的状态相关 Action 时。在这种情况下,我更喜欢有两个 switch 块而不是创建十个新类。

    关于design-patterns - 状态模式与 ENUM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10752157/

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