在 UML class 图中建模可索引类型
Modelling indexable types in UML class diagramm
我在 uml class 图表中对可索引类型建模时遇到问题。
可索引类型用于描述字典。
以下示例说明了我的问题:
鉴于以下 JSON:
{
"hero1": {
"f": "fast",
"c": "clever",
"g": "good"
},
"hero2": {
"e": "evil"
},
"hero3": {}
}
如您所见,有一个英雄对象,其中包含权力的键值对。
每个电源都有一个密钥,例如"f" 和一个值,例如"fast".
用 UML 建模我可以这样:
我的问题出在 ... 部分,因为假设有成千上万个键值对,为每个键值对创建一个 class 似乎不正确。
在 TypeScript 中我会这样编程:
interface PowerObject {
[powercode: string]: string
}
我不确定是否应该将其描述为具有 0..* 关系的 Hero 到 PowerObject 关系。
编辑:我认为这个问题与链接的问题不同,它基于描述一组未知的 "classes" 之间的关系,该结构是事先已知的。然而,将 class 集成到另一个中确实有意义并且非常有帮助。
感谢您的回答和评论。
基于第一条评论,我可以更好地说明 PowerObject 在 Hero 对象中。
然而一个子问题仍然存在。这是形象化的"powers"。
例如。 PowerObject 可以包含零个、一个或多个幂值,例如 (fast | clever | good | evil | .... ).
因为权力列表可以是无限的并且只是一个字符串,所以我不太确定我是否以正确的方式说明了它。
我不认为你的模型是 useful/helpful。他们混淆了值和属性。
您的 Hero
class 似乎有一个集合值 powers
属性,其中幂值只是 PowerEnum
= { 中的枚举值f: "fast", c: "clever", g: "good", ...}
我在 uml class 图表中对可索引类型建模时遇到问题。 可索引类型用于描述字典。
以下示例说明了我的问题: 鉴于以下 JSON:
{
"hero1": {
"f": "fast",
"c": "clever",
"g": "good"
},
"hero2": {
"e": "evil"
},
"hero3": {}
}
如您所见,有一个英雄对象,其中包含权力的键值对。 每个电源都有一个密钥,例如"f" 和一个值,例如"fast".
用 UML 建模我可以这样:
我的问题出在 ... 部分,因为假设有成千上万个键值对,为每个键值对创建一个 class 似乎不正确。
在 TypeScript 中我会这样编程:
interface PowerObject {
[powercode: string]: string
}
我不确定是否应该将其描述为具有 0..* 关系的 Hero 到 PowerObject 关系。
编辑:我认为这个问题与链接的问题不同,它基于描述一组未知的 "classes" 之间的关系,该结构是事先已知的。然而,将 class 集成到另一个中确实有意义并且非常有帮助。
感谢您的回答和评论。 基于第一条评论,我可以更好地说明 PowerObject 在 Hero 对象中。
然而一个子问题仍然存在。这是形象化的"powers"。 例如。 PowerObject 可以包含零个、一个或多个幂值,例如 (fast | clever | good | evil | .... ).
因为权力列表可以是无限的并且只是一个字符串,所以我不太确定我是否以正确的方式说明了它。
我不认为你的模型是 useful/helpful。他们混淆了值和属性。
您的 Hero
class 似乎有一个集合值 powers
属性,其中幂值只是 PowerEnum
= { 中的枚举值f: "fast", c: "clever", g: "good", ...}