我想为我的java项目创建一个类图。即使这听起来很简单,我现在也有点困惑。
我熟悉符号,但何时必须在两个类之间建立连接?
例如,我有一个StartClass:
Model model = new Model();
View view = new View();
Controller controller = new Controller(view, model);
很明显,StartClass
与Model
,View
和Controller
相关联。但Controller
现在是否也与Model
和View
?
或另一个例子:
ClassA classA = new ClassA();
ClassB classB = new ClassB();
classB.methodB(classA);
ClassB
和ClassA
现在彼此之间有联系吗?
对不起这个非常简单的问题...
答案 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类)只是因为你将它用作方法的参数?)。