【发布时间】:2021-02-09 01:08:27
【问题描述】:
情况是有一个名为Progress 的数据有两个有效值(假设'A' 和B)。这意味着Progress = 'A' 或Progress = B。 A 只是 string,但 B 是 not string。 B 本身有一些有效值(假设字符串:'V1'、'V2'、'V3')。 progress 可以是A,即string,也可以是B,即'V1'、'V2' 或'V3'。如何对这些数据建模?
如果B 只是一个简单的字符串(就像A),那么我们可以将Progress 定义为string,但我认为一种解决方案是将progress 定义为一个有两个孩子的类:@ 987654348@ & Class B。 Class B 有 2 个字段:Id & state,所以我们有 3 个 ID,对应于 3 个 states:'V1'、'V2' 和 'V3' 和 Class A,其中 const 字段名为 state,固定名称为 state值'A'。所以使用这个解决方案progress 可以是对象A 或B,它有一个state。
如果这样的设计不好或者有任何适合这种情况的设计模式,请帮助我。
【问题讨论】:
-
a data named Progress:不,Progress 是一个变量,一个数据是一个值。Progress = B ... but B is not string:您没有将 Progress 分配给 B 而是分配其值,并且该值是一个字符串,因此在所有情况下您都分配 Progress带有一个字符串(假设单引号定义了一个文字字符串,而不仅仅是 C(++) 中的一个字符)。你的问题的其余部分似乎表明你混淆了类和类的实例 -
@bruno - 你如何为图像建模?
-
对其建模我首先需要知道您的图像代表什么,分配后 Progress 可以具有的可能值? 进度是什么?
-
在我的系统中进度是构建结构的进度。我想知道结构所处的状态。状态可以是值:“A”、“V1”、“V2”或“V3”。但是状态“A”在逻辑上与“V1”、“V2”或“V3”是分开的。从逻辑上讲,它们是 2 种不同类型的进度。
-
@Christophe 呵呵。斯威夫特是我从中得到的。 (并不是说我太喜欢这种语言了。)
标签: class oop design-patterns uml software-design