我正在寻找在UML类图中描述以下情况的正确方法:
public class DbTransaction
{
private List<DbTask> taskList;
public void buildTaskList()
{
this.taskList = taskListFactory.buildTaskList();
}
}
public static class TaskListFactory
{
public static List<DbTask> buildTaskList()
{
List list = new List<DbTask>();
return list;
}
}
public class DbTask
{
.....
}
DbTransaction与DbTask相关联,但我不确定将关系绘制到静态TaskList类的正确方法。
答案 0 :(得分:3)
正确的UML图与工厂是否存在无关,或者工厂是否是静态方法的静态类。事实是,DbTransaction
的实例在名为DbTask
的类成员变量中维护了类型taskList
的实例列表。这意味着您的UML应该显示一个DbTransaction
类,它与DbTask
类具有单向关联。该单向关联应该具有名为taskList
的关联结束属性,其多重性为0..*
。
如果您愿意,还可以从DbTransaction
类到TaskList
类绘制依赖关系,以指示它已被调用。您还可以将buildTaskList()
操作建模为静态功能(通过设置isStatic=true
,它将在类图中将其显示为下划线)。通过将该依赖关系的客户端从DbTransaction
类更改为其buildTaskList()
操作以及来自TaskList
类的该依赖关系的提供者,您甚至可以真正特定进行buildTaskList()
操作。
以下是您的示例:
答案 1 :(得分:0)
我认为有更多可能来画这个。
1)在DbTransaction
和TaskList
之间创建一个链接,并调用该关联使用
2)不创建任何链接,但写下一个说明并说这是一个工厂,并由交易使用
这也取决于你想要显示面向对象的正确模型,或者你想要显示系统的行为。
我建议使用选项2)。当你不仅想要显示这三个组件的行为时。