我们如何才能最好地设计员工可以具有不同名称的结构类。经理可以管理很少的员工。每个员工都有一些责任。 我的想法是以下几行。想知道更好的方法
enum DesignationLevel {
SE, SSE, MANAGER;
}
class Designation {
DesignationLevel dl;
List responsibilies;
}
class Employee {
Designation desig;
Employee manager;
List subordinates;
}
看起来不错。不要使用原始类型的List
,使用List<Responsibility>
和List<Employee>
。
还有什么是SE
和SSE
?根据您问题的上下文,我可以弄清楚,但您的代码的读者可能无法做到。使用专有名称。
另外,你如何对没有经理的首席执行官进行建模 - 经理为空是否可以接受?是否存在员工可能有多个经理的情况?
enum DesignationLevel {
SOFTWARE_ENGINEER, SENIOR_SOFTWARE_ENGINEER, MANAGER;
}
class Designation {
DesignationLevel designationLevel;
List<Responsibility> responsibilities;
}
class Employee {
Designation designation;
Employee manager;
List<Employee> subordinates;
}
作为枚举常量的不同名称
enum Designation {
SOFTWARE_ENGINEER, SENIOR_SOFTWARE_ENGINEER, MANAGER;
}
员工(普通员工和经理(应根据其指定具有指定和责任。
此外,如果员工(即经理(,那么他可以在他手下拥有下属,他们也是员工,因此添加了类型列表。
由于下属是列表类型,经理可以有下属,也可以是员工或经理,员工可能没有下属。
class Employee {
Designation designation;
List<String> responsibilities;
List<Employee> subordinates;
}
如果需要,董事和管理层可以有单独的课程。