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

合成模式的树形结构只能解决数据结构中的简单树形结构。考虑这样的情景如何解决?
最上面是国家,国家下面有省,省下面有市,市下面有县,县作为叶子节点。国家、省和市不再是同一个类,大家共同想想好的方案。

首先要明确三个设计目标:
1.存储方面:看你是想用XML实现 还是想用数据库。
2.运行运算方面:你是需要在内存完全展开整个树,还是只要展开当前节点的兄弟节点和父子节点。这两种目标不一样,方案可能不一样。
3.界面方:是使用浏览器还是专用肥客户端,不过这两者都已经要好的解决方案。

Bang你误解了,我是说类之间的关系该如何设计。

如果是EJB 的CMP,使用CMR就可以方便实现
当然hibernate也可以定制实现。

如果不是用其他的技术,你自己赤手空拳,你该如何设计国家、省、市和县之间的关系呢?
我是希望banq从纯粹的设计模式的角度思考。谢谢!

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

只是个简单实现,好像每个实体没有具体内容。

这样呢?
wwlhp@jdon.comKn0056I8h5.rar

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

从你这个设计看,你是想将树结构关系抽象到District这个类中实现,其实你这个District就是一个树类。

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

谢谢banq的指教,我一定好好看看admin中的树形原理。