如何在 UML class 图中描述一个方法接受多种类型?
How to depict in a UML class diagram that a method accept multiple types?
我正在处理一个 PHP 项目,并且正在编写它的 UML 文档。
我需要指定一个方法接受多种数据类型,但我不知道该怎么做。
例如:
我想在 UML class 图中表示一个名为 'A' 的 PHP class:
<?php
class A{
private $_data;
public function __construct() {
$this->_data = array();
}
public function add( $key , $value){
$this->_data[$key] = $value;
}
}
$oA = new A();
$oA->add( 1, 'John Doe' ); // key is an int and value is a string
$oA->add( "Fruits" , array("Apple", "Banana", "Kiwi") ); // string, array
$oA->add( "pi", 3.1415 );
//and so on...
?>
请注意,add() 函数可以接收不同类型数据的键和值。因此,我无法在我的 UML class 图中指定诸如“key:integer”或“value : string[]”之类的内容,因为它们的数据类型可能会根据调用方法时传递的数据类型而改变.
有没有办法用 UML 符号来描述这个事实?
我可以指定类似的内容吗:
+ add( key:mixed , value:mixed)
?
提前致谢!
这是解释语言的普遍问题,我想这里没有现成的东西。一种可能的方法是将参数声明为(抽象的)class Varying
(或任何您想称呼的参数)。这可能只是您模型中的一个约定,您在全局位置描述这种类型意味着该方法接受不同的参数。所以你的 add
会显示为
+ add(Varying)
您可以(理论上)为此类参数引入一种形式上正确的方法。但这不值得付出努力(除非你会在大学的一些 UML class 中做到这一点)。
编辑 或者,可以使用标记值让模型读者了解此类结构。根据工具的不同,这些标记值可以控制可见表示以及代码生成。
另请参阅:
我正在处理一个 PHP 项目,并且正在编写它的 UML 文档。 我需要指定一个方法接受多种数据类型,但我不知道该怎么做。
例如: 我想在 UML class 图中表示一个名为 'A' 的 PHP class:
<?php
class A{
private $_data;
public function __construct() {
$this->_data = array();
}
public function add( $key , $value){
$this->_data[$key] = $value;
}
}
$oA = new A();
$oA->add( 1, 'John Doe' ); // key is an int and value is a string
$oA->add( "Fruits" , array("Apple", "Banana", "Kiwi") ); // string, array
$oA->add( "pi", 3.1415 );
//and so on...
?>
请注意,add() 函数可以接收不同类型数据的键和值。因此,我无法在我的 UML class 图中指定诸如“key:integer”或“value : string[]”之类的内容,因为它们的数据类型可能会根据调用方法时传递的数据类型而改变.
有没有办法用 UML 符号来描述这个事实?
我可以指定类似的内容吗:
+ add( key:mixed , value:mixed)
?
提前致谢!
这是解释语言的普遍问题,我想这里没有现成的东西。一种可能的方法是将参数声明为(抽象的)class Varying
(或任何您想称呼的参数)。这可能只是您模型中的一个约定,您在全局位置描述这种类型意味着该方法接受不同的参数。所以你的 add
会显示为
+ add(Varying)
您可以(理论上)为此类参数引入一种形式上正确的方法。但这不值得付出努力(除非你会在大学的一些 UML class 中做到这一点)。
编辑 或者,可以使用标记值让模型读者了解此类结构。根据工具的不同,这些标记值可以控制可见表示以及代码生成。
另请参阅: