|
|
1
2
我认为在任何地方都没有一个明确的答案,但这是一个常见的问题,并且以下方法始终为我提供了很好的服务:
对于像currentStatus这样的东西,听起来选项2或3是自然的适合。如果以下任何一种情况适用,则选择3更可取:
|
|
|
2
2
我个人更喜欢这种转换语句
还有-你可能会喜欢 this article 作者:吉米(以防你坚持使用枚举型的解决方案)。 |
|
|
3
1
这是一个非常常见的问题,很大程度上取决于对问题的理解。通常我认为这是简单性、可读性和可扩展性之间的交集。
最简单=枚举。最可读=字符串。最可扩展=引用表。 哪一个最适合你的问题? |
|
4
1
如果您相当确定状态的选项数量不会增加,那么枚举将起作用。我认为你可以通过一些仔细的设计来避免开关/案例的问题…也许使用策略模式。 另一方面,如果选项的数量可能增加,那么创建WorkflowStatus类将是一种可行的方法。这将允许您在不修改代码的情况下添加更多状态。我认为你不必为每个个体的状态创建一个类。 |
|
|
5
1
通常,您最终会将这种类型的项作为枚举引用。如果要避免切换/大小写地狱,可以使用映射到每个枚举的操作-下面是一个示例:
然后分配给
您可以使用以下简单方法:
最后,要调用它,您需要执行以下操作:
请注意,您可以在不使用枚举的情况下对字符串执行此操作,但此方法有助于避免代码中出现魔力字符串。 |
|
|
6
1
这个 state-pattern 听起来很合理。 如果您有更多不同的值,您可以使用其中一个根实现,并添加一些 decorator-pattern . |
|
|
7
1
我建议您研究域驱动设计中定义的“值类型”的概念。这个工作流步骤听起来像是一个主要的候选人。您没有提到您在用什么语言或环境编码,但是在.NET中,如果我最终使用了这个概念,我将创建一个表示这个对象的结构,并对其进行编码,以便在它的公共接口中,在整个系统的其余部分中,客户机代码使用它时,它显示为枚举,并将被用作枚举。
在C中
您可以在模型中键入其他类的属性,这些属性需要作为
|
|
|
8
1
那就是 State Pattern .
这似乎是一个单独的问题。如果没有更多的细节,就没什么好说的了。 |
|
|
simply lemon · python上链表的添加方法 1 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 1 年前 |