4

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

我熟悉符号,但我什么时候必须在两个类之间创建连接?

例如我有一个 StartClass:

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

很明显与和StartClass相连。但现在也与and相连?ModelViewControllerControllerModelView

或者另一个例子:

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

classB.methodB(classA);

彼此之间是否ClassB和现在有联系?ClassA

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

4

4 回答 4

3

如果您的 Controller 如下所示,则它与 Model 和 View 建立了连接。

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

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

于 2013-07-01T13:00:59.107 回答
1

在您的第一个示例中,您正在创建不同的类对象:模型、视图和控制器。因此,正如您所说,类与模型、视图和控制器相连,控制器也与模型和视图相连。

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

于 2013-07-01T13:10:27.293 回答
1

自从我不得不对 UML 图大惊小怪已经有几年了,但是 Wikipedia 似乎对通常的关系(关联、聚合、组合、泛化 [类继承]、实现 [接口实现])有很好的解释。

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

在 的情况下classB.methodB(classA);,我相信这将被视为一般关联,因为它是一个对象对另一个对象/与另一个对象执行操作(如果methodB()要存储某些东西classAclassB它将是专门的聚合,或者甚至可能是组合,如果将classB坚持classA程序的其余部分)。

于 2013-07-01T13:01:46.850 回答
0

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

但是,一般而言,在对应用程序进行建模时,您只会连接那些声明为另一个类的成员的类,而不是在类中以某种身份使用的所有类(您是否会添加 string 或 int 类只是因为您将其用作方法的参数?)。

于 2013-07-01T13:05:25.063 回答