【问题标题】:How to represents a relationship in UML class diagram where relationship type depends on a field in related class?如何在 UML 类图中表示关系类型取决于相关类中的字段的关系?
【发布时间】:2013-08-08 15:03:49
【问题描述】:

我们有两个类,即 Client 和 View,其中 View 有一个字段 type,其可能的值是 ownedassigned。客户可以有零个或多个视图。

如果视图的存在取决于它是拥有还是分配,那么现在我如何在类图中表示它。 owned 视图是由客户端创建和拥有的,如果没有客户端就不能存在,assigned 视图是分配给它们的,并且可以在没有任何客户端的情况下存在

我可以轻松创建一个名为 View 的类,并可以将其扩展为具有两个名为 OwnedViews 和 AssignedViews 的子类,并定义了单独的关系,而不是具有字段 type,但我想知道如果有类型字段而不是子类,如何在类图中表示它。

【问题讨论】:

  • 一个视图可以被一个客户端拥有并同时分配给另一个客户端吗?
  • 作为一个有趣的问题,你为什么不/不能创建你描述的两个子类型?这将使模型更简洁。
  • “已分配”视图可以分配给任意数量的客户@Xaelis
  • 当然这样做会使模型更简单,但我只想知道是否可以在不进行子类化的情况下在类图中表示@sfinnie

标签: uml class-diagram


【解决方案1】:

【讨论】:

  • 请注意,这允许拥有和分配任何单个视图。这可能是您想要的——尽管拥有 type='assigned' 但仍然拥有所有者有点违反直觉。如果你想让它互斥,你需要扩展约束:self.type = ViewType::OWNED 意味着 self.owner->notEmpty() 和 self.clients->empty()。您还需要一个等效项来确保分配视图的所有者为空。
  • @amitpsat 不客气。如果你想复制这个模型,我已经添加了一个链接。
  • 同意@sfinnie,约束必须是双向的
猜你喜欢
  • 1970-01-01
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 2015-01-14
相关资源
最近更新 更多