在java中建模现实生活场景

时间:2010-07-22 12:09:37

标签: java

我对以下场景的设计有一些疑问: 有一家公司。 典型公司至少具有以下属性:(  1.公司名称  2.员工名单

典型员工具有以下属性:  1.姓名  2.部门

典型部门至少具有以下属性:  1. numberOfEmps  2.说明

每个部门都应该维护该部门的员工数量。因此,无论何时添加或删除员工,都应分别增加或减少与员工部门相对应的计数。

我如何使用java类对此进行建模?w

2 个答案:

答案 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)

您可以在员工和部门之间创建双向关系:

员工知道他的部门,部门知道属于他的员工。

如果更改了员工的部门并且新部门与当前部门不同,则员工将从当前部门中删除(如果当前部门不为空),则添加到新部门并更新当前部门

将员工添加到部门时,员工的部门会更改。