在类图中连接什么

时间:2013-07-01 12:39:01

标签: java class-diagram

我想为我的java项目创建一个类图。即使这听起来很简单,我现在也有点困惑。

我熟悉符号,但何时必须在两个类之间建立连接?

例如,我有一个StartClass:

Model model = new Model();
View view = new View();
Controller controller = new Controller(view, model);

很明显,StartClassModelViewController相关联。但Controller现在是否也与ModelView

相关联

或另一个例子:

ClassA classA = new ClassA();
ClassB classB = new ClassB();

classB.methodB(classA);

ClassBClassA现在彼此之间有联系吗?

对不起这个非常简单的问题...

4 个答案:

答案 0 :(得分:3)

如果您的控制器如下所示,则它与模型和视图有连接。

class Controller {
   public Controller(View view, Model model) {
       this.view = view;
       this.model = model;
   }
}

或者更一般地说:保存在类中的成员变量中的任何类引用都将是类图中的连接。

答案 1 :(得分:1)

自从我不得不大肆渲染UML图表以来已经过了几年,但维基百科似乎对通常的关系(关联,聚合,组合,泛化[类继承]有了很好的解释,实现[接口实现])。

http://en.wikipedia.org/wiki/Class_diagram#Relationships

classB.methodB(classA);的情况下,我认为这将被视为一般关联,因为它是一个对象在/与另一个对象执行操作(如果methodB()做某事要存储{{ 1}}在classA中,如果classB将保留classB用于程序的其余部分,则它将具体地聚合,甚至可能是合成。

答案 2 :(得分:1)

在第一个示例中,您正在创建不同的类对象:模型,视图和控制器。因为您说类与模型,视图和控制器连接,并且控制器与模型和视图连接。

在第二个示例中,两个类都相同:A类和B类之间有新的连接。

答案 3 :(得分:0)

当你进入MVC模式时,事情变得有点棘手,但MSDN对如何建模这些关系有一个很好的解释:http://msdn.microsoft.com/en-us/library/ff649643.aspx

但是,一般情况下,在建模应用程序时,您只会连接那些声明为另一个类成员的类,而不是在某个容量中在类中使用的所有类(您是否会添加字符串或int类)只是因为你将它用作方法的参数?)。