【问题标题】:It is possible to use bidirectional dependency in UML class diagram?可以在 UML 类图中使用双向依赖吗?
【发布时间】:2015-04-19 16:11:43
【问题描述】:

我有 2 个类,它们更复杂,但这并不重要.. 我应该如何在 UML 类图中绘制这种依赖关系?我不确定它应该是什么样子

public class A {
  private void foo(B b){
   ....
  }
  ...
}

public class B {
  private void foo(A a){
   ....
  }
   ....
}

我可以画这样的东西吗?或者它应该是什么样子?

【问题讨论】:

    标签: dependencies uml class-diagram bidirectional-relation


    【解决方案1】:

    这完全没问题。您也可以使用单个双向依赖项。

    附:从设计的角度来看,我认为这不太好。在两个方向上都有依赖意味着你的设计应该被修改。一个依赖应该只在一个方向。交叉依赖只是麻烦的一个原因。另见circular dependency

    【讨论】:

    • 我已经添加了图片中的方法,就像在 OP 的编辑问题中一样(只要看到我的图片显示它们是公开的 - 猜猜没关系 ;-)
    【解决方案2】:

    在我看来你有聚合。查看更多详情here。但如果它真的只是依赖,你可以像以前那样使用箭头。

    【讨论】:

    • 这不能是一个聚合,因为你不能构造两个相互聚合的元素。如果聚合部分已经存在,您将如何构建只能构建的元素?
    • @Thomas Kilian,起初对我来说似乎有点不合逻辑,并决定指出这一点。否则你是对的。如果是组合,它可能是双向的,但双向聚合没有意义。
    猜你喜欢
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多