我正在寻找在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类的关系的正确方法。
最佳答案
正确的UML图与是否存在工厂或工厂是否为具有静态方法的静态类无关。事实是,DbTransaction
的实例在名为DbTask
的类成员变量中维护类型为taskList
的实例的列表。这意味着您的UML应该显示与DbTransaction
类具有单向关联的DbTask
类。该单向关联应具有称为taskList
且具有多个0..*
的关联结束属性。
如果愿意,还可以从DbTransaction
类到TaskList
类绘制一个依赖项,以表明已调用该依赖项。您还可以将buildTaskList()
操作建模为静态功能(通过设置isStatic=true
,它将在类图上加下划线)。您甚至可以通过将依赖项的客户端从DbTransaction
类更改为其buildTaskList()
操作,并将该依赖项的提供者从TaskList
类更改为其buildTaskList()
操作来真正地确定具体情况。
这是给你的一个例子:
关于c# - UML静态工厂,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37657699/