2015-05-19 57 views
0

正如標題所說,你能幫助我理解0 .. *如何影響這個UML中的最後一個類?我也會把我寫它的代碼,我沒有任何錯誤,但我不明白如何實現結束,0 .. */0..10 .. *和End(s)如何在這個UML上工作?

enter image description here

import java.util.ArrayList; 
public class MyHomeSecurity { 
    private ArrayList<Security> allSecurity= new ArrayList<Security>(); 

    public void addSecurity(Security mySecure){ 
     allSecurity.add(mySecure); 
    } 

    public void removeSecurity(Security mySecure){ 
     allSecurity.remove(mySecure); 
    } 

    public void information(){ 
     System.out.println("Information"); 
    } 

    public ArrayList<Security> getAllSecurity() { 
     return allSecurity; 
    } 

    public void setAllSecurity(ArrayList<Security> allSecurity) { 
     this.allSecurity = allSecurity; 
    } 
} 
+0

我不明白你的問題。通過調用'addSecurity',您引用0 .. *'證券'。那麼你的意思是什麼 – Blip

+0

對不起,英語不是我的第一語言,我可能無法解釋自己。如果你看過,我還在鏈接上張貼了一張圖片。我發佈的這段代碼的描述是:「MyHomeSecurity是一個concerete類,allSecurity是一個屬性,用於保存與一個MyHomeSecurity對象有關的所有安全對象(建議使用ArrayList的用法)addSecurity()方法添加一個新的安全對象removeSecurity()方法從列表中刪除安全對象,information()方法列出所有與安全對象相關的信息。 –

回答

0

0..10..*之間的差異是一個約束,根據您使用的語言不同,約束將會有所不同。大多數情況下,您需要通過檢查元素的數量是零還是一個來實現該集合的約束(在0..1的情況下)。如果你使用Swift,你可以使用Optional,它有一個值或者是nil。我猜測對於Java,您還可以使用nil來檢測是否分配了某些東西(因此您的Cypher要麼是nil要麼指向某個對象)。

0..*案例僅僅是一個在大多數OO語言中處理類似的集合(有時是不同大小的數組)。