繁体   English   中英

UML 图的这种实现是否正确?

[英]Is this implementation of the UML diagram correct?

UML 图的这种实现是否正确?

我正在准备考试,我们的教授没有给我们解决这些任务的方法,因为我们应该自己活跃,但我仍然希望得到反馈。 在此处输入图像描述

我的代码:

public abstract class Employee {
   protected String name;
   protected int salery;
   public Employee(){
      name="";
      salery=0;
   }
   public String toString(){
       return "name: "+name+"salery: "+salery;
   }
}

import java.util.ArrayList;

public class EmployeeList {
    protected ArrayList<Employee> members;

    public EmployeeList(){
         members=new ArrayList<Employee>();
    }

    public String toString(){
        String ret="";
        for(int i=0;i<members.size();i++){
             ret+=members.get(i).toString()+" ";
        }
        return ret;
     }
}
public class Manager extends Employee{
     protected String department;
     public String toString(){
          return department;
     }
}

该代码似乎在实践中有效,因为我已经对其进行了测试:

    EmployeeList employeeList=new EmployeeList();

    Manager m1=new Manager();
    Manager m2=new Manager();
    Manager m3=new Manager();

    m1.department="McDonalds";
    m2.department="BigHouse";
    m3.department="Heart";

    System.out.println(m1);

    employeeList.members.add(m1);
    employeeList.members.add(m2);
    employeeList.members.add(m3);

    System.out.println(employeeList);

您(应该)因为大量的salery样式错误和将salary拼写错误而失去一些分数。 是的,这些事情确实很重要。

您是否应该将这些字段声明为private并提供protected的 getter 和 setter 也是值得商榷的。 将 getter 和 setter 放入 UML 图中是不正常的做法。 他们是一种假设。 但是在 Java 中声明非private字段是(通常)不好的做法。

最后, Employee不应该是abstract的。 (您只能创建Manager对象而不能创建Employee对象甚至没有意义。)


在实践中,Java 类(或其他)不需要是 UML 的直译。 UML 是一种设计符号……不是规范语言。

通常,斜体文本用于表示 class 应该是抽象的。 Employee 有什么抽象的原因吗?

否则,这似乎是一个公平的实施。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM