【问题标题】:How does 0..* and End(s) work on this UML?0..* 和 End(s) 如何在这个 UML 上工作?
【发布时间】:2015-07-31 10:31:32
【问题描述】:

正如标题所说,你能帮我理解 0..* 是如何影响这个 UML 中的最后一个类的吗?我还将发布我为它编写的代码,我没有任何错误,但我不明白如何实现 Ends 和 0..*/0..1

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;
    }
}

【问题讨论】:

  • 我不明白你的问题。通过调用addSecurity,您正在引用 0..* Securities。那你的意思是什么
  • 很抱歉,英语不是我的母语,我可能无法解释自己。如果您查看它,我还在链接中发布了一张图片。我发布的这段代码的描述是:“MyHomeSecurity 是一个具体的类。allSecurity 是一个属性,保存与一个 MyHomeSecurity 对象相关的所有安全对象(建议使用 ArrayList)。addSecurity() 方法在list.removeSecurity() 方法从列表中移除一个安全对象。information() 方法列出了与安全对象相关的所有信息。"

标签: java interface uml diagram


【解决方案1】:

0..10..* 之间的区别是一个约束,将根据您使用的语言以不同的方式实现。大多数情况下,您需要通过检查元素的数量是零还是一(在0..1 情况下)来对集合实施该约束。如果你使用的是 Swift,你可以使用 Optional,它有一个值或者是 nil。我猜对于 Java,您还可以使用 nil 来检测是否分配了某些内容(因此您的 Cypher 要么是 nil 要么指向某个对象)。

0..* 案例只是一个集合,在大多数 OO 语言中处理类似(有时作为不同大小的数组)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    相关资源
    最近更新 更多