我正在开发一个PHP项目,并且正在进行其UML文档。 我需要指定一个方法接受多种数据类型,我无法弄清楚如何去做。
例如: 我想代表一个叫做' A'的PHP类。在UML类图中:
<?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类图中指定类似“key:integer”或“value:string []”的东西,因为它们的数据类型可以根据调用方法时传递的数据类型而改变。 / p>
有没有办法用UML表示法来描述这个事实?
我可以指定类似的内容:
+ add( key:mixed , value:mixed)
提前致谢!
答案 0 :(得分:2)
答案 1 :(得分:1)
这是解释语言的一般问题,我想没有现成的东西可以到达这里。一种可能的方法是声明参数是(抽象)类Varying
(或任何你想称之为的)。这可能只是您模型中的一个约定,您在全局处描述这样的类型意味着该方法接受不同的参数。因此,您的add
将显示为
+ add(Varying)
您可以(理论上)为这些参数引入正式的正确方法。但这不值得努力(除非你在大学的某些UML课程中这样做)。
编辑或者,可以使用标记值使模型读者了解此类构造。根据工具的不同,这些标记值可以控制可见表示以及代码生成。