摘要: 一、上篇回顾 通过上篇的简单讲解,我们知道了,组合模式意图是通过整体与局部之间的关系,通过树形结构的形式进行组织复杂对象,屏蔽对象内部的细节,对外展现统一的方式来操作对象,是我们处理更复杂对象的一个手段和方式。本文以查询控件为例,说明了,查询控件内部的组成元素,及如何操作内部的组成元素,包括添加元素,删除和处理相应事件的Handler,当然组合模式的作用远比这些强大,后面我们肯定会在一些实例代码中运用到组合模式的。组合模式如果在条件允许的情况下,我们尽量使用组合模式来处理复杂对象,远比通过继承出来的对象来的有效。 组合模式-强调的是如何组织整体和局部之间的结构,将整体和局部之间的关系,通过树形 阅读全文
posted @ 2013-01-31 14:58 于为 阅读(208) 评论(0) 推荐(0)
摘要: 一、上篇回顾上篇我们主要讲述了创建型模式中的最后一个模式-原型模式,我们主要讲述了原型模式的几类实现方案,和原型模式的应用的场景和特点,原型模式适合在哪些场景下使用呢?我们先来回顾一下我们上篇讲述的3个常用的场景。 1、我们在运行态的时候,动态的创建一个动态类型的对象的时候,可能我们使用原型模式,可以动态的创建指定类型的副本,这无疑是好的选择,否则如果通过我们前面讲述的几个创建型模式来实现的话,效率和代价上是非常大的。 2、有的时候我们需要对比一个对象在处理前和处理后进行对象状态的对比,对比是否处理后对象的状态是否发生变化,或者是其他的要求。这个时候通过原型模式来克隆对象的副本,远比通过引入其 阅读全文
posted @ 2013-01-31 14:57 于为 阅读(213) 评论(0) 推荐(0)
摘要: 一、上篇回顾 我们上篇主要讲述了结构型模式中的外观模式,外观模式作为结构型模式中的一个简单又实用的模式,外观模式通过封装细节来提供大粒度的调用,直接的好处就是,封装细节,提供了应用写程序的可维护性和易用性。外观模式一般应用在系统架构的服务层中,当我们是多个不同类型的客户端应用程序时,比如一个系统既可以在通过Web的形式访问,也可以通过客户端应用程序的形式时,可能通过外观模式来提供远程服务,让应用程序进行远程调用,这样通过外观形式提供服务,那么不管是什么样的客户端都访问一致的外观服务,那么以后就算是我们的应用服务发生变化,那么我们不需要修改没一个客户端应用的调用,只需要修改相应的外观应用即可。我 阅读全文
posted @ 2013-01-31 14:56 于为 阅读(234) 评论(0) 推荐(0)
摘要: 一、上篇回顾 上篇创建者模式中,我们主要讲述了创建者的几类实现方案,和创建者模式的应用的场景和特点,创建者模式适合创建复杂的对象,并且这些对象的每个组成部分的详细创建步骤可以是动态的变化的,但是每个对象的组装的过程来说可能是相对固定的或者说是对象的创建的过程是固定的,那么通过创建者模式可以很好的解决这类复杂对象的创建,而在我们的生活中或者是项目中可能会有这个方面的需求,那么使用创建者模式无疑是好的选择。 创建者模式中的每个对象组成部分的构建都是对象本身提供的内部方法,具体的创建者只是调用要创建的对象的内部的相应组成部分的构建方法,组织这些对象内部构建方法的执行顺序,完成对象的完整构建。当我们的 阅读全文
posted @ 2013-01-31 14:52 于为 阅读(207) 评论(0) 推荐(0)
摘要: 一、上篇回顾 上篇我们主要讲述了抽象工厂模式和工厂模式。并且分析了该模式的应用场景和一些优缺点,并且给出了一些实现的思路和方案,我们现在来回顾一下: 抽象工厂模式:一个工厂负责所有类型对象的创建,支持无缝的新增新的类型对象的创建。这种情况是通过配置文件来实现的,通过字典映射的方式来实现,不过可能效率上有点低下,可以通过优化的方式来做,上篇中我们也给出了委托的工厂实现形式,相比之前的简单工厂模式和工厂模式有了更好的灵活性,并且对具有依赖关系或者组合关系的对象的创建尤为适合。 上篇中,有不少的朋友提出了一些意见和建议,首先很感谢大伙的支持和鼓励,有朋友提出来,我画的图不够专业,专业人士应该用UML 阅读全文
posted @ 2013-01-31 14:51 于为 阅读(217) 评论(0) 推荐(0)
摘要: 一、上篇回顾 上篇我们主要讲述了简单工厂模式和工厂模式。并且分析了每种模式的应用场景和一些优缺点,我们现在来回顾一下: 简单工厂模式:一个工厂负责所有类型对象的创建,不支持无缝的新增新的类型对象的创建。 工厂模式:多个工厂负责多个类型对象的创建,每个工厂只负责具体类型对象的创建,支持无缝的新增类型对象的创建,需要实现工厂接口类和具体的类型对象类。 我们来简单的对比下这2个模式的优缺点:模式名称优点缺点简单工厂模式一个工厂负责所有对象的创建,简单灵活不符合高内聚的原则,不支持无缝的扩展工厂模式可以无缝的新增类型,每个工厂职责单一,符合高内聚的原则工厂类太多,难以维护。 工厂模式,很优雅的解决了应 阅读全文
posted @ 2013-01-31 14:49 于为 阅读(286) 评论(0) 推荐(0)
摘要: 一、开篇 一个多月没有写文章了,一方面是由于家庭的原因,还有一方面是因为工作上的原因,所以在这里给大家说抱歉了,这段时间也是有很多热心的朋友,一直询问我,什么时候能把相关的系列文章写完,其实我也特别的想赶快的把相关的文章书写完毕,不过现在真的是有时候力不从心,家庭和工作上的事情需要都处理好,所以属于个人思考的时间可能就会相对的少一些了,不过我会继续努力,出时间来把下面的这几个系列写完: 1、系统架构技能之设计模式-系列索引 2、系统架构师-基础到企业应用架构-系列索引 3、Step by Step-构建自己的ORM系列 当然可能在我写的过程中又会产生新的想法或者思路,我会提出来,并且给出相应的 阅读全文
posted @ 2013-01-31 14:48 于为 阅读(372) 评论(0) 推荐(0)
摘要: 一、开篇 其实我本来不是打算把系统架构中的一些设计模式单独抽出来讲解的,因为很多的好朋友也比较关注这方面的内容,所以我想通过我理解及平时项目中应用到的一些常见的设计模式,拿出来给大家做个简单讲解,我这里只是抛砖引玉,如果某个地方讲解的不正确或者不详细,请大家批评指出。园子里面的很多的大牛写的设计模式都非常的经典,我这里写可能有点班门弄斧的感觉,不过我还是决定把它写出来,希望能对初学者有一定的帮助和指导的作用。当然我这里如果说某个地方解释的有问题或者说是某个地方写的不符合逻辑之处,还请大家多多指出,提出宝贵意见。 软件工程中其实有很多总结性的话语,比如说软件=算法+数据结构等等这样的描述,当然我 阅读全文
posted @ 2013-01-31 14:47 于为 阅读(202) 评论(0) 推荐(0)
摘要: 相对路径与绝对路径,本文来自:http://www.cnblogs.com/sutengcn/archive/2008/08/17/201993.html1,相对路径与绝对路径 文档路径类型一共有三种:绝对路径、根相对路径和文档相对路径。 绝对路径是包括服务器协议(在本例中为http协议)的完全路径,比如“洪恩在线——电脑乐园”,完全路径为:http://www.hongen.com/pc/index.htm,如果所要链接当前站点之外的文档,就必须使用绝对路径。 相对路径包括根相对路径(Site Root)和文档相对路径(Document)两种。 前面我们讲过,在本地磁盘上编辑网页时,需... 阅读全文
posted @ 2013-01-31 11:13 于为 阅读(612) 评论(0) 推荐(0)
摘要: 本文使用ORACLE自带的人力资源(HR)实例数据,本文所用表结构如下:表名:REGIONS序号列名数据类型长度小数位标识主键允许空默认值说明1REGION_IDNUMBER是否2REGION_NAMEVARCHAR225是表名:COUNTRIES序号列名数据类型长度小数位标识主键允许空默认值说明1COUNTRY_IDCHAR2是否2COUNTRY_NAMEVARCHAR240是3REGION_IDNUMBER是表名:LOCATIONS序号列名数据类型长度小数位标识主键允许空默认值说明1LOCATION_IDNUMBER40是否2STREET_ADDRESSVARCHAR240是3POSTAL 阅读全文
posted @ 2013-01-31 10:44 于为 阅读(389) 评论(0) 推荐(0)