当前位置: 技术问答>java相关
多级结构的数据能不能用Composite模式啊?
来源: 互联网 发布时间:2017-04-15
本文导语: 小弟正在做一个项目,其中要用到部门,部门是多级的,结构如下: [部门] |- [部门] |- [部门] |- [部门] |- [部门] |- [部门] (末级) ...
小弟正在做一个项目,其中要用到部门,部门是多级的,结构如下:
[部门]
|- [部门]
|- [部门]
|- [部门]
|- [部门]
|- [部门] (末级)
|-[人员]
如果是末级的记录,则可以加入[人员],现在要设计部门管理(包括增加、删除和修改),我能不能用Composite模式进行设计啊,如果可以的话具体应该是怎么的呢?谢谢大家!!
[部门]
|- [部门]
|- [部门]
|- [部门]
|- [部门]
|- [部门] (末级)
|-[人员]
如果是末级的记录,则可以加入[人员],现在要设计部门管理(包括增加、删除和修改),我能不能用Composite模式进行设计啊,如果可以的话具体应该是怎么的呢?谢谢大家!!
|
当然可以:)
但你得先考虑一下你的情况,这些部门是不是有相同的操作要完成(或者说未来是不是有相同的操作要完成),比如说统计人数,添加删除部门啊什么的,还是只有个花架子。如果是前一种情况,Composite比较适合(你得慎重考虑一下怎样维护这样一个复杂的对象系统,最好是有个xml或是数据库来描述);如果时后一种情况,直接使用数据库或xml来描述,不必维护一个对象系统,只要实现最后一级部门就可以了。
从你说的情况来看,Composite是合适的。各部门统一拥有add,delete,update这样的接口,你的客户代码指通过接口访问某一级部门,而无需关心她到底是什么部门,也不必关心添加一个部门和个人之间有什么区别。
但你得先考虑一下你的情况,这些部门是不是有相同的操作要完成(或者说未来是不是有相同的操作要完成),比如说统计人数,添加删除部门啊什么的,还是只有个花架子。如果是前一种情况,Composite比较适合(你得慎重考虑一下怎样维护这样一个复杂的对象系统,最好是有个xml或是数据库来描述);如果时后一种情况,直接使用数据库或xml来描述,不必维护一个对象系统,只要实现最后一级部门就可以了。
从你说的情况来看,Composite是合适的。各部门统一拥有add,delete,update这样的接口,你的客户代码指通过接口访问某一级部门,而无需关心她到底是什么部门,也不必关心添加一个部门和个人之间有什么区别。
|
Tree类型的结构简直就是Composite的一种具体展现
|
每层实现一个类继承同一个接口(树根),子接点类组合进父接点类,这样的话对任何父接点的操作都可以作用到子接点而且方法相同(继承自同一接口)