我被要求使用UML图记录一段代码。代码模拟如下情况:可以将驱动程序分配给一个或多个路径。每条路线都有上游和下游方向。对于每个路线,驾驶员可以在上游方向和/或下游方向上行驶。
Driver类的简化伪代码如下:
class Driver:
HashMap<Route, Direction> upstream;
HashMap<Route, Direction> downstream;
HashMap<Route, Direction> assignedTo;
其中assignedTo映射实际上是一个返回散列图的属性,该散列图由驱动程序分配给上游和下游方向的路径组成(将其视为另外两个散列图的视图)
到目前为止,我已经提出了以下UML表示。
----------- ---------
| CLASS | (assignedTo) | CLASS |
| DRIVER |----------------------------| ROUTE |
----------- * | * ---------
|
-------------
| CLASS |
| DIRECTION |
-------------
^ ^
| |
------------ --------------
| CLASS | | CLASS |
| UPSTREAM | | DOWNSTREAM |
------------ --------------
但是,我有点困惑的是,在UML中我使用继承而代码不使用继承。你觉得怎么样?
答案 0 :(得分:1)
我改变了一点,但这是我的另一个样本。我不确定我是否正确理解显示的伪代码,但是当分配给两个方向时,这可能是一个问题。在我个人看来,我的示例图也更容易实现。
关于继承,答案与UML的不同之处在于......表示如何实现或解释概念。如果是后者,使用继承就没有问题了。