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

时间:2018-10-11 09:30:03

标签: java database oop model

我们如何才能最好地为员工可以具有不同指定的结构设计课程。经理只能管理几个员工。每个员工都有一些责任。 我的想法如下。想知道更好的方法

enum DesignationLevel {
    SE, SSE, MANAGER;
}

class Designation {
    DesignationLevel dl;
    List responsibilies;
}

class Employee {
    Designation desig;
    Employee manager;
    List subordinates;
}

2 个答案:

答案 0 :(得分:0)

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

SESSE是什么?在您提出问题的上下文中,我可以弄清楚,但是您的代码读者可能无法理解。使用专有名称。

此外,您如何模拟没有经理的CEO-经理为空是否可以接受?员工可能有多个管理人员的情况吗?

enum DesignationLevel {
    SOFTWARE_ENGINEER, SENIOR_SOFTWARE_ENGINEER, MANAGER;
}

class Designation {
    DesignationLevel designationLevel;
    List<Responsibility> responsibilities;
}

class Employee {
    Designation designation;
    Employee manager;
    List<Employee> subordinates;
}

答案 1 :(得分:0)

指定为枚举常量的不同

enum Designation {
    SOFTWARE_ENGINEER, SENIOR_SOFTWARE_ENGINEER, MANAGER;
}

员工(普通员工和经理)应根据其职责指定职责。

如果雇员(即经理)也可以在其下拥有下属,而他们也是雇员,因此将添加类型列表。

由于下属是类型列表,所以Manager可以有下属,他们也可以是雇员或经理,而Employee可能没有下属。

class Employee {
    Designation designation;
    List<String> responsibilities;
    List<Employee> subordinates;
}

如果需要,可以为董事和管理人员开设单独的课程。