2014-03-28 43 views
1

我想听听这里存在的所有关系。我认为这里存在像1-1和多重性一样的依赖关系和聚合关系?此java代码中的uml关系

public class Main { 

    public Main() { 
     Model model = new Model(); 
     View view = new View(); 
     Controller controller = new Controller(view, model); 
    } 

    public static void main(String[] args) { 
     new Main(); 
    } 

} 

public class Controller { 

    private Model model; 
    private View view; 

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

} 

public class Model { ... } 

public class View { ... } 
+0

退房http://stackoverflow.com/q/1687323/2175939 – Sam

+0

谢谢你很多山姆! – user3385945

回答

1

这很简单,这里没有必要进行逆向工程(从代码构建模型)。

Main有三个协会:一个Model,一个与View和一个与Controller,而Controller有两个协会:一个Model和一个与View

请注意,不需要关联Main-ModelMain-View,因为它们可以通过main.controller.modelmain.controller.view导出。

关联Main-Controller(以及Main-ModelMain-View)可以被看作/建模为组合物,由于主程序实例(处理)由控制器实例,其被捆绑了模型和的查看实例。所有这三种组合都具有lifecylce依赖性:任何模型,视图和控制器实例都依赖于它的主聚合实例。

+0

我会调用Main与Model,Controller的关系,并最多查看依赖项,因为它们只在其构造函数中创建,而不是类的字段。奇怪的选择,但仍然。你可以花很长时间讨论控制器模型和控制器视图是聚合还是关联。但时间最好花不同的时间,所以我喜欢你如何理解这一点。 :) – flup

+0

你说得对,这段代码的含义不明确。在构造函数中声明局部变量以引用模型,视图和控制器没有意义(请参阅http://stackoverflow.com/questions/20138948/variables-in-constructor)。这就是为什么我解释这个(没有太多想法),因为打算通过声明为类成员的正常引用属性来引用正常的引用。 –