我对以下场景的设计有一些疑问: 有一家公司。 典型公司至少具有以下属性:( 1.公司名称 2.员工名单
典型员工具有以下属性: 1.姓名 2.部门
典型部门至少具有以下属性: 1. numberOfEmps 2.说明
每个部门都应该维护该部门的员工数量。因此,无论何时添加或删除员工,都应分别增加或减少与员工部门相对应的计数。
我如何使用java类对此进行建模?w
答案 0 :(得分:1)
有以下课程。
<强> 公司 强>
String id; // Unique identifier for company.
String name; // Name of company
<强> 员工 强>
String id; // Unique identifier of employee.
String Name; // Name of employee
Department department; // Instance of Department to which this employee belongs.
Company company; // Instance of Company to which this employee belongs.
<强> 系 强>
String id; // Unique identifier of department.
long employeeCount; // Count of employees.
String description; // Description of department.
public setEmployeeCount(); // Method which searches through all Employee objects matching current department with its unique id.
请注意。部门和员工的反向映射是为了确保在任何时候,其中一个类将Employee对象保留在列表中。如果员工人数增长到很大的水平,这可能会成为一个值得关注的问题。
答案 1 :(得分:0)
您可以在员工和部门之间创建双向关系:
员工知道他的部门,部门知道属于他的员工。
如果更改了员工的部门并且新部门与当前部门不同,则员工将从当前部门中删除(如果当前部门不为空),则添加到新部门并更新当前部门
将员工添加到部门时,员工的部门会更改。