微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么UML不正确,因为Java代码实现是聚合?

如何解决为什么UML不正确,因为Java代码实现是聚合?

我有实现聚合的Java代码,但是在IntelliJ Idea中生成UML图时,它是用合成符号(实心菱形)生成的。

代码如下:

public class Address {

    private String city;
    private String state;
    private String country;

    public Address(String city,String state,String country) {
        this.city = city;
        this.state = state;
        this.country = country;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    @Override
    public String toString() {
        return "Address{" +
                "city='" + city + '\'' +
                ",state='" + state + '\'' +
                ",country='" + country + '\'' +
                '}';
    }
}

public class Employee {

    private String name;
    private int age;
    private Address address;

    public Employee(String name,int age,Address address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "name='" + name + '\'' +
                ",age=" + age +
                ",address=" + address +
                '}';
    }
}


public class Practice {

    public static void main(String[] args) {

        Address address = new Address("City","State","Country");
        Employee employee = new Employee("Name",22,address);


        System.out.println(employee);
        employee = null;
        System.out.println(employee);
        System.out.println(address);
    }
}

enter image description here

代码运行时,符合聚合概念的要求。

我的问题是:

  1. 我的代码不能正确实现聚合吗?
  2. 如果实现正确,那么为什么我的UML图工具将Java代码实现检测为Employee和Address之间的组合?

我期待准确的解释。

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。