前言
和所有程序员一样,我也一直在学习,学习更深层次的技术,学习软件开发的方法,学习软件项目管理。在学习设计模式的过程中,找了不少书,但我在学习这些书本的时候发现了一个很头疼的问题,这些书本都很生涩,非常之抽象,从模式的定义到模式的意图,再到模式的类图等等,非常多的笔墨来描述他们。可是,当讲到实际应用的时候,却是戛然而止,仿佛有若蜻蜓点水。
我想大师们和我不一样,他们站在一个抽象的高度,所以他们只讲抽象、理论、要领、原则。然而,软件界要培养大师级的人物毕竟是小数,大多数人和我一样,是一个实践者,况且,每一个大师都是菜鸟进化而来的。千里之行,始于足下,九层高台,起于垒土。
一直想把设计模式这个东西放在实际的案例中,然后写出来,这样我觉得更加平易近人,程序员都喜欢看代码。但实际上有很多制约未能成行,一方面是自身的水平问题,另一方面是一时间难以找到这么多合适的案例出来。
刚好凑巧,最近需要用到JSON,设计模式中的组合模式正好可以应用,完成代码之后就想把自己的想法写出来,也希望多多少少能帮到正在学习设计模式的人,也算是这个系列的一个起点吧,我希望以后还有更多的时间与机会来写其它的设计模式。
如果您正在看这篇文章,表示您正在学习,虽然本文附有代码,但我想您最好亲自去写一下这些代码。毕竟“纸上来得终觉浅,绝知此事要躬行”,多写多问多看总是有好处的。
坦白讲,我的技术非常有限,在这篇文章中一定会存在着许多谬误,欢迎大家拍砖。
我希望和更多的人一起交流,当然不仅仅是局限于技术,所以公开我的联系方式,但由于时间关系,我不一定能有问必答,希望能得到您的原谅。技术要求
 设计模式的基本概念,对组合模式有一个基本的了解,如果不太明白,可以到网上去找相关的书籍,推荐一下《大话设计模式》这本书。
 JSON(Javascript Object Notation,JSON其实非常简单,实际上就是一个数据字典,有点像C#中的Hashtable,网上有一个《深入浅出JSON》的PDF版,或者访问网址http://www.json.org
 面向对象开发的基本思想,最好是有C#或者Java的开发经验。
案例背景
因项目需要,我们需要用C#生成JSON数据
案例分析
这里面有一个关键词——JSON,我们来看看JSON数据到底是怎么样的,典型的JSON数据如下:Javascript代码
{
“ArticleID”:”10”,
”Title”:”实战设计模式——用组合模式实现JSON”
}这是典型的数据字典格式,Name:Value,Name和Value都用引号括起来的,多个数据字典用逗号为分隔,我们再来看一个复杂点的:Javascript代码
{
“ArticleID”:”10”,
“Category”:
{
“CategoryID”:”15”,
“Caption”,”实战设计模式系列”
//这里可能还会有子级
},
//这里可能还有更多与Category一样的节点
”Title”:”实战设计模式——用组合模式实现JSON”
}你有没有发现,这里实际上是棵树,根节点是没有名称的,根节点下面有两个子节点,分别是ArticleID和Title,还有一个特别点的子节点Category,这个子节点又拥有两个子节点CategoryID及Caption。
在这棵树上,每一个子节点可能还会有无数个子孙节点,那么,JSON代码的节点就有三种类型:节点类型 特点描述
根节点 节点没有名称,节点没有值,节点用一对花括号括起来
普通节点 节点有名称,节点没有值,节点用一对花括号括起来
叶子节点 节点有名称,有值还有一个通用的特点就是节点与值是用分号隔开的,节点与节点之间用逗号分隔。
因为原文件较大,一共20页,CSDN不能发这么多,请下载PDF文件,如果这篇文章对您有用,请回复一下^_^下载地址
http://www.conis.cn/UPLOAD/PDF/DesignPattern_Composite_JSON.pdf