首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UML静态工厂

UML静态工厂
EN

Stack Overflow用户
提问于 2016-06-06 12:37:50
回答 2查看 157关注 0票数 1

我正在寻找在UML类图中描述以下情况的正确方法:

代码语言:javascript
复制
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类的关系。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-06 15:14:21

正确的UML图与工厂是否存在、工厂是否是带有静态方法的静态类无关。事实上,DbTransaction的一个实例在名为taskList的类成员变量中维护一个DbTask类型实例的列表。这意味着您的UML应该显示一个DbTransaction类,该类与DbTask类具有单向关联。该单向关联应该具有一个名为taskList的关联端属性,该属性具有多重0..*

如果愿意,还可以将DbTransaction类的依赖项绘制到TaskList类,以指示调用它。您还可以将buildTaskList()操作建模为静态特性(方法是设置isStatic=true,它将显示为类图上的下划线)。您甚至可以通过将该依赖项的客户端从DbTransaction类更改为它的buildTaskList()操作,并将该依赖关系的提供者从TaskList类更改为它的buildTaskList()操作,甚至可以做到这一点。

下面是一个给你的例子:

票数 3
EN

Stack Overflow用户

发布于 2016-06-06 12:43:19

我认为有更多的可能性来画这个。

1)在DbTransactionTaskList之间创建一个链接,并调用关联使用

2)不创建链接,只需写一条便条,说明这是一个工厂,由事务使用。

它还取决于您希望显示面向对象的正确模型,或者希望显示系统的行为。

我建议使用备选案文2)。当您不仅想要显示这三个组件的行为时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37657699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档