摘要: 前一篇关于代理模式的博文中详细介绍了远程代理,本篇将补充一些其它代理(虚拟代理、保护代理、防火墙代理……) 阅读全文
posted @ 2014-10-06 18:26 梦烬 阅读(1098) 评论(0) 推荐(0) 编辑
摘要: 代理模式通过插入第三方(代理对象)来分离调用者和被调用者(不同于执行者),而远程代理是最经典的代理之一,被调用者不在本地(处于另一个JVM中),无法直接调用它,此时就需要一个远程代理,调用者把调用请求发送给远程代理,代理对象和被调用者通信,再把调用结果传递给调用者 阅读全文
posted @ 2014-10-05 09:36 梦烬 阅读(4905) 评论(2) 推荐(0) 编辑
摘要: 状态模式是用来封装某种状态下的一整套行为的,状态模式隐藏了状态切换过程,调用者并不清楚模块内部的状态转换细节,状态模式实现了程序运行时的多态。如果代码中出现了大量相似的if-else结构,你可能需要使用状态模式来消除这些不和谐的条件块。 阅读全文
posted @ 2014-10-02 15:06 梦烬 阅读(1131) 评论(2) 推荐(4) 编辑
摘要: 组合模式,提供一种层级结构,使得我们能够忽略对象与对象集合间的差异,一视同仁地对待它们。更重要的是组合模式与迭代器模式组合起来可以轻松地完成一些神奇的事情(比如封装层级结构的遍历,以及在遍历基础上扩展的其它操作),牺牲类的单一责任原则,来换取透明性。 阅读全文
posted @ 2014-09-30 16:15 梦烬 阅读(1348) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式是一种比较简单的模式,说白了就是用迭代器来封装遍历细节。集合对象大都支持遍历操作(如Array,List,Set,Map等等),但由于各个集合对象内部实现方式不同,遍历时需要调用的接口也不同,迭代器就是为了给集合对象提供一个统一的接口以支持遍历操作 阅读全文
posted @ 2014-09-27 17:32 梦烬 阅读(1157) 评论(0) 推荐(0) 编辑
摘要: 模版方法模式,用来封装算法骨架(流程),某些步骤由子类实现。此外还有另一个模式:策略模式,二者都是用来封装算法的,但侧重点不同,本文展开详细讨论。 阅读全文
posted @ 2014-09-26 13:58 梦烬 阅读(1351) 评论(0) 推荐(1) 编辑
摘要: 外观模式,用来为复杂的子系统提供简单易用的高层接口。如果你发现调用某个子系统实现一个简单的功能也需要调用很多个低层组件,那么你可能需要外观模式来拯救你。 阅读全文
posted @ 2014-09-16 13:43 梦烬 阅读(1209) 评论(0) 推荐(3) 编辑
摘要: 适配器模式,用来实现接口的转换 阅读全文
posted @ 2014-09-15 13:30 梦烬 阅读(1460) 评论(0) 推荐(0) 编辑
摘要: 命令模式,用来解耦请求者与执行者的一种设计模式,其扩展应用主要有队列请求(把运算限制在指定的工作线程中)和日志请求(用于生成日志及恢复事务)。 阅读全文
posted @ 2014-09-13 12:07 梦烬 阅读(1290) 评论(6) 推荐(1) 编辑
摘要: 单件模式又被称为单例模式,定义很简单——只允许存在指定类的唯一实例(instance),并由该类提供全局访问点。但在实际应用的时候会遇到很多问题,比如在多线程,或多个classloader环境下,如何保证单件模式的正确性等等 阅读全文
posted @ 2014-09-12 17:08 梦烬 阅读(2054) 评论(0) 推荐(0) 编辑
摘要: 之前一直以为定义一个XXXFactory类来负责new对象就是工厂模式了,而且一般为了方便使用,都把工厂类中的Create定义为static方法,仔细学习过后才发现工厂模式远没有这么简单,而且,严格地说,这种被称为“简单工厂模式”的方式根本不能称之为“模式” 阅读全文
posted @ 2014-09-11 13:17 梦烬 阅读(1056) 评论(0) 推荐(0) 编辑
摘要: 装饰者模式是一种在框架中应用广泛的设计模式,在JavaAPI中文件流操作就应用了这样的模式,例如InputStream in = new BufferedInputStream(new FileInputStream(file));其中,BufferedInputStream被用来装饰FileInputStream,从而实现功能的扩展。装饰者模式满足“对修改关闭,对扩展开放”的OO设计原则,是一种很不错的设计模式。 阅读全文
posted @ 2014-09-09 16:34 梦烬 阅读(1827) 评论(2) 推荐(1) 编辑
摘要: 观察者模式,一句话概括,就是定义并维护对象之间的一对多关系。“定义”是指建立“一”与“多”之间的依赖关系;“维护”是指我们可以动态地解除依赖以及建立新的依赖。 阅读全文
posted @ 2014-09-05 18:41 梦烬 阅读(1571) 评论(0) 推荐(1) 编辑
摘要: 设计模式是由代码结构优化经验萃取出来的理论知识,应用成熟的设计模式能够增强代码的可复用性、可扩展性与可维护性。其中,策略模式是最基础的设计模式之一,简单地说,策略模式就是把可以替换的算法步骤封装成一个个算法族,供运行时动态选择。 阅读全文
posted @ 2014-09-04 18:37 梦烬 阅读(3812) 评论(1) 推荐(1) 编辑
摘要: 耗费一个月读完了500页的理论知识,在此分享学习笔记。正则表达式不是一张简单的元字符表,相关知识也不是一篇单薄的文章所能够囊括的,只是希望本文能够帮助你加深对Regex的理解,同时扩宽视野;另一方面,记下笔记备忘。具体内容包括[正则表达式工作原理], [正则环视], [正则引擎], [正则优化]等。 阅读全文
posted @ 2014-07-31 11:09 梦烬 阅读(2187) 评论(5) 推荐(4) 编辑