摘要: 解释器模式的类图如下: 定义了上下文对象,在对象中有两个数,我们要对这两个数进行对应的运算。我们在接口中定义了解释器,其中有一个解释的方法。在加法中我们实际的解释加的具体操作是什么。 [java] view plaincopy public interfa... 阅读全文
posted @ 2015-03-26 17:08 qz程程 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 顾名思义,迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟悉的话,理解本模式会十分轻松。这句话包含两层意思:一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问。我们看下关系图: publi... 阅读全文
posted @ 2015-03-23 14:26 qz程程 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。 FlyWeightFactory负责创建和管理享元单元,当一个客户端请求时,工厂需要检查当前对象池中是否有符合条件的对象,如果有,就返回已经存在的对象,如果没有,则创建一个新... 阅读全文
posted @ 2015-03-20 14:08 qz程程 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图 public class TreeNode { private String name; private TreeNode parent; private V... 阅读全文
posted @ 2015-03-20 14:02 qz程程 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 外观模式是为了解决类与类之间的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例) public class ... 阅读全文
posted @ 2015-03-20 13:28 qz程程 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 1.类的适配器模式 public class Source { public void method1() { System.out.println("this is original method!"); } } publ... 阅读全文
posted @ 2015-03-20 13:05 qz程程 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他... 阅读全文
posted @ 2015-03-14 09:40 qz程程 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件: 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java... 阅读全文
posted @ 2015-03-14 09:23 qz程程 阅读(107) 评论(0) 推荐(0) 编辑
摘要: package mode.proxy;/** * * 这里的代理模式是通过接口方式实现的 * * */public interface NetWork { public void browser();} package mode.proxy;public class Real imple... 阅读全文
posted @ 2015-03-13 13:48 qz程程 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 —抽象策略角色: 策略类,通常由一个接口或者抽象类实现。 —具体策略角色:包装了相关的算法和行为。 —环境角色:持有一个策略类的引用,最终给客户端调用。 pack... 阅读全文
posted @ 2015-03-13 13:39 qz程程 阅读(154) 评论(0) 推荐(0) 编辑