论坛首页 综合技术论坛

组织机构的设计,欢迎讨论

浏览 6578 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-25  
一个对组织机构的初步设计,欢迎讨论设计思路,并提出需求
1 orgnode是一个树型结构
2 orgnodedefine是对组织机构树的层次定义
3 orgperson是建立在岗位之上的
4 总公司、分公司、部门、岗位是树的基本节点
5 需要区分是内部单位还是外部单位
6 部门之间存在上下级关系,部门内部有小的部门
7 可以根据名称的拼音第一个字母查找部门或者人员
8 changelog是对系统内变更的审计日志记录,考虑采用hibernate的监听器来实现
  • 大小: 43.7 KB
   发表时间:2007-04-25  
参考分析模式
0 请登录后投票
   发表时间:2007-04-26  
岗位与人的关系是什么?
没看懂为什么这么设计

总公司、分公司、部门、岗位
这些东东有什么区别么非要设计成不同的类?
0 请登录后投票
   发表时间:2007-04-26  
抛出异常的爱 写道
岗位与人的关系是什么?
没看懂为什么这么设计

总公司、分公司、部门、岗位
这些东东有什么区别么非要设计成不同的类?


公司有法人、注册地址等信息。

岗位与人的关系使用了最简的模型,考虑复杂一点,有公司所有岗位表、部门设立岗位表、人担任岗位表。另外,区分主岗和副岗吗?
引用

2 orgnodedefine是对组织机构树的层次定义

没理解这句话。
0 请登录后投票
   发表时间:2007-04-26  
“分析模式”里面有这个东西,可以直接搬过来用。
或者干脆来个Composition模式,这是最简单的,也够用了。
0 请登录后投票
   发表时间:2007-04-26  
1 岗位与人是多对多
2
引用
总公司、分公司、部门、岗位
这些东东有什么区别么非要设计成不同的类?

为每一个级别下的orgnode指定类,是因为每一级的组织可能会存在更加复杂的耦合和特殊情况,作成统一的类可能会不利于扩展
0 请登录后投票
   发表时间:2007-05-18  
这是一个纯粹的composite模式......
首先搂住的需求有问题。
既然是一个组织结构,就只有组成关系,而没有管理关系,
这样只能增加分析的难度。。。。。。
设计一:
把orgCorpotiation,orgCompany,orgDepartment,orgStation合并成树枝节点,把orgPerson当作叶子节点,这样很简单了
abstract:orgNode:
属性:
Collection<orgNode> subNode;//所有的子节点
Collection<orgNode> manageNode;//所管理的节点
long id;
String name;
在这里树枝节点可以继承orgNode...
叶子节点也可以继承orgNode...不过subNode=null;manageNode=null
这样就可以了。。。。。在这里我看不出orgCompany,orgDepartment...的区别。。。。。。。。

如果要查找,很简单,树的遍历算法。。。。。。。
在这里只能由父节点到子节点,不能由子节点到父节点。。。。。。
设计2:不要继承,一个类一个类写就可以了.
company:
Collection<department> dep;
long id;
String name;
department:
Collection<station> sta;
long id;
Stirng name;
类似这样处理,也没有几个类,就那么几个。。。。。。。。。。。
0 请登录后投票
   发表时间:2007-05-21  
liudong9183 写道
这是一个纯粹的composite模式......
首先搂住的需求有问题。
既然是一个组织结构,就只有组成关系,而没有管理关系,
这样只能增加分析的难度。。。。。。
设计一:
把orgCorpotiation,orgCompany,orgDepartment,orgStation合并成树枝节点,把orgPerson当作叶子节点,这样很简单了
abstract:orgNode:
属性:
Collection<orgNode> subNode;//所有的子节点
Collection<orgNode> manageNode;//所管理的节点
long id;
String name;
在这里树枝节点可以继承orgNode...
叶子节点也可以继承orgNode...不过subNode=null;manageNode=null
这样就可以了。。。。。在这里我看不出orgCompany,orgDepartment...的区别。。。。。。。。

如果要查找,很简单,树的遍历算法。。。。。。。
在这里只能由父节点到子节点,不能由子节点到父节点。。。。。。
设计2:不要继承,一个类一个类写就可以了.
company:
Collection<department> dep;
long id;
String name;
department:
Collection<station> sta;
long id;
Stirng name;
类似这样处理,也没有几个类,就那么几个。。。。。。。。。。。
1 每一级组织机构的属性是不一样的,而且每一级可能存在不同的操作,因此进行了继承和重载
2 不知道你的意思
0 请登录后投票
   发表时间:2007-05-21  
翻翻书看看设计模式。。。。。
不要想当然的做设计。。。。。。。

不是为了设计而设计。。。。是为了使用而设计


楼主有将简单问题复杂化的趋势 。。。。。。。。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics