首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

议论:设计模式?组织机构与员工的关系

2013-01-19 
讨论:设计模式?组织机构与员工的关系假设每个员工只属于某一个部门,则部门与员工是1..n的关系,由此设计部

讨论:设计模式?组织机构与员工的关系
假设每个员工只属于某一个部门,则部门与员工是1..n的关系,由此设计部门类TOrgan
和员工类TPersonnel如下:
TOrgan = class
private
  FID: integer;
  FName: string;
  FParent: TOrgan; 
  FEmployee: TPersonnelList;  
  ...
public
  ...
  function GetEmployes: TPersonnelList; 
end;

TPersonnel = class
private
  FID: integer;
  FName: string;
  FParent: TOrgan; 
  ...
public
  ...
end;

TPersonnelList = class
private
  FItem[Index: Integer]: Personnel;
  FCount: Integer;
  ...
public
  ...
  function GetPersonnel(Index: integer): TPersonnel;
end;
个人感觉这种方案有几个缺点:
1、部门类TOrgan和员工类TPersonnel耦合太强;
2、三个类之间形成了循环引用,不符合OO的封装原则;
3、当组织机构比较复杂或者员工较多时,会占用大量的内存。
大家一般是怎么处理的?或者有什么好的想法请一起讨论。
[解决办法]
你这个部门与员工之间,除了需要记录所属关系之外,还有别的相互操作吗?
如果没有的话我觉得这些缺点其实无关紧要。

热点排行