2014-03-28 44 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)。這就是爲什麼我解釋這個(沒有太多想法),因爲打算通過聲明爲類成員的正常引用屬性來引用正常的引用。 –