[英]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.