摘要: 前言 上一篇,我们详细讲解了职责链模式,其主要目的是分离职责,动态组合。所谓职责分离,是为了将复杂功能拆分成若干个小功能模块,从而规划定义各职责类,同时由于粒度较小,各职责类的复用性也就随之增大;而动态组合是在形成各职责类的前提下,根据需要动态地组合各职责对象,形成应对特定功能需求的职责链,进而在请求的发送者与请求的处理者之间形成松耦合状态,因为发送者无需知道请求最终将由哪个具体的处理者处理,当...阅读全文
posted @ 2012-11-05 09:04 JackyBing 阅读(1555) 评论(0) 编辑
摘要: 前言 之前我们已经将前两种类型的设计模式都已经悉数介绍完呢(创建型和结构型),希望此时大家能够对它们有一个全新的认识,不仅加深对各个模式的理论理解,更需要在日常开发活动中实践之,这样才能真正做到对模式的融会贯通。模式的学习和领悟需要一个过程,不可能一蹴而就,更不可高开低走,需要大家静下心来扎实地一步步学习和提高。从今天开始,我们将继续完成最后一种类型的设计模式——行为型模式的介绍和学习,所谓的行...阅读全文
posted @ 2012-11-03 19:02 JackyBing 阅读(1120) 评论(0) 编辑
摘要: 前言 到今天为此,我们已经完成了对所有结构型模式的介绍和学习,如果大家都对每一篇博文都仔细浏览查看的话,相信对七种结构型模式会有一个更深层次的掌握和理解,与此同时,在每一篇博文中,我们都针对当前介绍的模式与其他相关模式进行了对比,剖析了各自的异同点和关联性,使得大家可以从纵、横两方面更好地领悟各个模式精髓,而不仅仅只是局限于对单个模式的介绍。所谓纵维度比较指的是不同类型模式间的比较,在设计模式中...阅读全文
posted @ 2012-11-02 22:18 JackyBing 阅读(1184) 评论(0) 编辑
摘要: 前言 之前,写过一篇对pentaho BI Server-3.5版本将内置内容数据库迁移到mysql的博文,详细内容可以参考这里,现在由于由于项目的需要,重拾对pentaho的全方面研究。既然考虑使用pentaho,自然也就理所当然地选择对pentaho当前最新的稳定版本进行调研学习呢。当前最新版本的pentaho社区版为4.5版本,这里所讲的版本是指的是pentaho BI Server的最新...阅读全文
posted @ 2012-10-30 22:34 JackyBing 阅读(3900) 评论(9) 编辑
摘要: 前言 今天我们将介绍的最后一种结构型模式——代理模式,在介绍它之前,让我们先回顾下上一篇博文对享元模式的学习。享元模式主要是通过运用共享技术有效支持大量细粒度的对象,其本质在于两方面:分离和共享。简单地说,分离的是对象状态中变与不变的部分,其中不变的部分设置为对象的内部状态,而随应用场景随之发生变化的部分为对象的外部状态;而共享指的就是对对象状态中不变部分的共享,因为内部状态不会随外部状态的改变...阅读全文
posted @ 2012-10-15 08:52 JackyBing 阅读(1599) 评论(7) 编辑
摘要: 前言 上一篇,我们详细讲解了外观模式,回顾一下其主要目的是”封装交互,简化调用“,通过提供一个高层接口,隔离了外部系统与子系统间复杂的交互过程,使得复杂系统的子系统更易使用,从软件学的角度上来说就是将两者进行解耦,松散耦合。此外,我们也可以通过实现不同的外观对象,来完成不同高层接口的实现过程,供外部系统选择调用。对外观模式的回顾我们就是说这么多,详细的介绍大家可以参考上一篇博文,那里有更为全面深...阅读全文
posted @ 2012-10-13 09:57 JackyBing 阅读(1070) 评论(4) 编辑
摘要: 前言 上一篇,我们详细介绍了装饰模式,回顾一下装饰模式的主要意图:动态地给一个对象添加职责,就增加功能来说,装饰模式比生成子类更为灵活,方便。与此同时,因为装饰器与组件对象拥有相同的接口,逻辑上与组件对象归属为同一类型范畴,这样用户就可以通过装饰器的组合,透明地给组件对象添加各式各样的额外功能。每个装饰器所实现的功能粒度越小,其复用性相对也就越高,因为可以通过这些小粒度的装饰器来为实际的组件对象...阅读全文
posted @ 2012-10-11 09:08 JackyBing 阅读(1529) 评论(0) 编辑
摘要: 前言 上一篇,我们详细讲解了组合模式,回顾一下:其主要将对象组合成树形结构以表示“部分——整体”的层次结构,这样可以使得用户对单个对象和组合对象的使用具有一致性,因为它们都遵循一套相同的接口,无须区别对待;相对于安全式的实现,透明性的实现方式通常是更好的选择,因为它真正符合了组合模式的本质意图。对象组合是组合模式的实现的根本,今天我们将要讲解的模式也同样是通过对象组合的方式来实现,也是将Favo...阅读全文
posted @ 2012-10-09 13:46 JackyBing 阅读(1488) 评论(6) 编辑
摘要: 前言 今晚,是国庆长假的最后一晚呢,在这里,希望博友们都过上了一个愉快难忘的假期吧。明天大家就要开始全新的工作和学习呢,也希望大家今晚就能够转换好心态吧:)。好了,步入主题吧,上一篇,我们详细讲解了桥接模式,其主要目的是分离了抽象部分与实现部分,使它们各自可以沿着各自的维度进行扩展和变化,通过对象组合的方式使得抽象部分可以调用实现部分的操作,完成抽象部分与实现部分的桥接。接下来,让我们再次接受另...阅读全文
posted @ 2012-10-07 20:45 JackyBing 阅读(1451) 评论(0) 编辑
摘要: 前言 回顾上一篇对适配器模式的介绍,其主要用于对现有对象的接口的适配封装,使其符合复用环境的接口要求,同时相对于类适配器来说,在java语言层面更适合使用对象组合的方式来实现适配器模式(主要是因为java或者.net语言不支持多继承机制),降低系统的耦合度,增加代码的灵活性和可维护性。其实,Favor Composition Over Inheritance原则在多个结构型模式中都有很明显的体...阅读全文
posted @ 2012-09-28 16:06 JackyBing 阅读(1694) 评论(5) 编辑
摘要: 前言 从今天开始,我们继续设计模式系列学习之旅,完成了对创建型模式的介绍和学习,接下来,我们将着重介绍各种结构型模式,希望大家能一起参与进来,学习、交流和思考。结构型模式涉及如何组合类和对象以获得更大的结构,同时,在各种结构型模式的实现上基本上遵循优先使用对象组合,而不是类继承原则,因为在运行时刻改变对象组合关系,可以使对象组合方式更具灵活性,这种机制用静态类组合(继承方式)是不可能实现的,这点...阅读全文
posted @ 2012-09-26 22:07 JackyBing 阅读(1436) 评论(4) 编辑
摘要: 前言 到今天为止,我们已经把GOF设计模式中的创建型模式都介绍完毕呢,总结起来就是:工厂方法模式、抽象工厂模式、生成器模式、原型模式及单例模式。通过前面的介绍,希望能让大家对创建型模式有一个新的认识和理解,讲解有什么不恰当的地方还希望大家提出来,一起交流和进步。总之一句话,之所以要写该系列文章,除了加深自己对23种设计模式的认识和理解外,也是将把自己对其的”掌握“诉诸博客,希望能得到各位的认同和...阅读全文
posted @ 2012-09-25 20:04 JackyBing 阅读(533) 评论(1) 编辑
摘要: 前言 单例模式是我们所要介绍的创建型模式中的最后一种设计模式,它与我们前面介绍过的四种创建型模式有相似之处,亦有很大的不同之处。相似之处是它们都属于创建型模式,抽象了对象类实例化的过程;而不同之处是在于单例模式在创建对象实例时,在全局范围内保证只会创建存在该对象类的一个实例对象,同时提供其全局访问点,而其他的四个创建型模式并没有此限制,可以自由地创建实例化多个对象类实例,这是它们之间的最大区别。...阅读全文
posted @ 2012-09-25 09:16 JackyBing 阅读(1756) 评论(7) 编辑
摘要: 前言 在前面介绍的三种创建型模式中,有一个共通的特点,就是不管是直接创建还是分步骤地组装创建都是通过第三方对象来完成,比如工厂、生成器。但是在创建型模式中还有一个比较特殊的模式,其不用通过第三方对象来完成对对象的创建,而是通过克隆自己来创建新对象,完成对新的对象的创建工作。这样客户端便可以直接根据原型对象来动态获取新的对象,而无需借助其他的辅助类来生成新的对象呢。类似这样的一种创建型模式,名曰—...阅读全文
posted @ 2012-09-22 20:04 JackyBing 阅读(373) 评论(0) 编辑
摘要: 前言 在前两讲,我们介绍了工厂方法和抽象工厂模式,这两种模式都是完成对一个或者若干个内部结构相对简单的对象的创建工作。换句话来说,这样的对象内部之间没有明显的子部分或者说是各个子部分间的“组装”过程。然而在现实世界里,确实存在着这样的对象模型,可以将内部抽象成若干个子部分,而且需要通过一定的组建算法将它们构建在一起形成完整的最终对象。面对类似对象的创建工作,显然工厂模式已经不善长,需要追寻新的模...阅读全文
posted @ 2012-09-20 16:30 JackyBing 阅读(1606) 评论(4) 编辑