我们如何对员工层次结构(软件工程师、高级软件工程师、经理等)及其职责进行建模?



我们如何才能最好地设计员工可以具有不同名称的结构类。经理可以管理很少的员工。每个员工都有一些责任。 我的想法是以下几行。想知道更好的方法

enum DesignationLevel {
SE, SSE, MANAGER;
}
class Designation {
DesignationLevel dl;
List responsibilies;
}
class Employee {
Designation desig;
Employee manager;
List subordinates;
}

看起来不错。不要使用原始类型的List,使用List<Responsibility>List<Employee>

还有什么是SESSE?根据您问题的上下文,我可以弄清楚,但您的代码的读者可能无法做到。使用专有名称。

另外,你如何对没有经理的首席执行官进行建模 - 经理为空是否可以接受?是否存在员工可能有多个经理的情况?

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

如果需要,董事和管理层可以有单独的课程。

最新更新