【发布时间】:2012-03-19 10:55:06
【问题描述】:
这是我的问题的一个非常简单的示例:
http://img19.imageshack.us/img19/3575/workertool.png
(我是新用户,所以不能在这里发图片)
这两个类的源代码如下所示:
public abstract class Worker{
private Tool myTool;
}
public class ABCWorker extends Worker{
public ABCWorker(){
myTool = new ABCTool();
}
public work(){
tool = (ABCTool) myTool;
//use tool to do some work
}
}
如何在 UML 中正确建模?在我看来,只有三种可能:
1) 我在示例中的做法。然而,这是错误的,因为它说 ABCWorker 可以使用 any 工具。但是,它只能使用 ABCTool。
2) 在 ABCWorker 和 ABCTool 之间建立第二个关联。显然是错误的,因为这意味着 ABCWorker 使用两个工具,一个 ABCTool 和一个通用工具。
3) ABCWorker 和 ABCTool 之间只建立一个关联。也错了,因为它省略了Worker和Tool之间的关系。
那我该怎么做呢?
【问题讨论】:
标签: inheritance uml associations modeling class-diagram