使用基于关联数组的 UML 建模类型
Modelling types with UML based on associative arrays
假设有一个 PHP 子系统,它仅使用关联数组来存储某种结构化数据。所以实际上没有语言级别的机制来约束这些结构,但你想在你的设计中使用 UML 来定义它们。
例如:
联系人可能看起来像这样作为 PHP 中的关联数组:
[
'name' => 'John Doe',
'birth' => '2000-04-01',
'email' => 'john.doe@company.com',
'address' => [
'street' => '123 Main St',
'city' => 'Anytown',
'state' => 'NY',
'zip' => '1234',
'country' => 'US'
]
]
所以我认为 UML 中的图表可能如下所示:
但有人可能会批评这是错误的,因为它显示了两个 classes 而不是两个关联数组。所以我们可以使用(自定义)刻板印象来表明这不是常规 class 而是哪个(以及如何定义它们)?
或者更常见的问题:the/a用 UML 定义此类数据类型的正确方法是什么?
简单来说:你的设计是正确的。您 "could" 所做的是使 Address
成为 Contact
:
的嵌入式 class
如果你愿意,你可以证明它应该作为关联数组来实现:
假设有一个 PHP 子系统,它仅使用关联数组来存储某种结构化数据。所以实际上没有语言级别的机制来约束这些结构,但你想在你的设计中使用 UML 来定义它们。
例如:
联系人可能看起来像这样作为 PHP 中的关联数组:
[
'name' => 'John Doe',
'birth' => '2000-04-01',
'email' => 'john.doe@company.com',
'address' => [
'street' => '123 Main St',
'city' => 'Anytown',
'state' => 'NY',
'zip' => '1234',
'country' => 'US'
]
]
所以我认为 UML 中的图表可能如下所示:
但有人可能会批评这是错误的,因为它显示了两个 classes 而不是两个关联数组。所以我们可以使用(自定义)刻板印象来表明这不是常规 class 而是哪个(以及如何定义它们)?
或者更常见的问题:the/a用 UML 定义此类数据类型的正确方法是什么?
简单来说:你的设计是正确的。您 "could" 所做的是使 Address
成为 Contact
:
如果你愿意,你可以证明它应该作为关联数组来实现: