这样的树形结构如何实现?

03-09-18 wwlhp@jdon.com
合成模式的树形结构只能解决数据结构中的简单树形结构。考虑这样的情景如何解决?

最上面是国家,国家下面有省,省下面有市,市下面有县,县作为叶子节点。国家、省和市不再是同一个类,大家共同想想好的方案。

banq
2003-09-19 09:54
首先要明确三个设计目标:

1.存储方面:看你是想用XML实现 还是想用数据库。

2.运行运算方面:你是需要在内存完全展开整个树,还是只要展开当前节点的兄弟节点和父子节点。这两种目标不一样,方案可能不一样。

3.界面方:是使用浏览器还是专用肥客户端,不过这两者都已经要好的解决方案。

wwlhp@jdon.com
2003-09-19 16:58
Bang你误解了,我是说类之间的关系该如何设计。

banq
2003-09-23 08:21
如果是EJB 的CMP,使用CMR就可以方便实现

当然hibernate也可以定制实现。

wwlhp@jdon.com
2003-09-24 08:02
如果不是用其他的技术,你自己赤手空拳,你该如何设计国家、省、市和县之间的关系呢?

我是希望banq从纯粹的设计模式的角度思考。谢谢!

banq
2003-09-24 16:55
我以前一直也这么努力过,但是发现其实信息系统中主要解决的是关系问题,如果非得要用模式 Composite如何?

wwlhp@jdon.com
2003-09-25 09:30
wwlhp@jdon.comh1DiSfwJub.rar

这是我的办法,我忽然又觉得用桥梁模式也不错。

banq
2003-09-26 11:46
只是个简单实现,好像每个实体没有具体内容。

wwlhp@jdon.com
2003-09-27 08:25
这样呢?

wwlhp@jdon.comKn0056I8h5.rar

District的实现是过于简单,还有待更具体的完善,我是想从这种设计方法上征求banq的意见。

banq
2003-09-29 11:17
从你这个设计看,你是想将树结构关系抽象到District这个类中实现,其实你这个District就是一个树类。

参考Tomcat admin 中的树形成原理,你们两者是一致的,在Tomcat中,TreeControll是包装了整个树形结构关系,另外一个类TreeControllNode是表示单个节点。通过TreeControll和TreeContrllNode这两个类就可以自由构造树形结构。你的District试图把这两个类功能集中在一起实现,不过从设计细分角度考虑,我认为分开比较好。

wwlhp@jdon.com
2003-09-29 16:43
谢谢banq的指教,我一定好好看看admin中的树形原理。

猜你喜欢