一、引子其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中;在实际应用中,我们可能很少碰到去构造一个语言的文法的情况。虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。二、定义与结构解释器模式的定义如下:定义语言的文法,并且...
分类:
编程语言 时间:
2014-06-28 18:45:39
阅读次数:
290
原文出处:http://blog.csdn.net/zhengzhb/article/details/7430098定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类型:行为类模式类图:中介者模式的结构 中介者模式又称...
分类:
编程语言 时间:
2014-06-21 09:25:51
阅读次数:
325
在阎宏博士的《JAVA与模式》一书中开头是这样描述访问者(Visitor)模式的: 访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。 1 interface Service { 2 3 ...
分类:
编程语言 时间:
2014-06-21 08:55:39
阅读次数:
300
意图:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录日志,以及支持可撤销的操作动机:将”发出请求的对象”和”接收与执行这些请求的对象”分隔开来。这里可能会有一个疑惑,就是为什么要将”发出请求的对象”和”接收与执行这些请求的对象”分隔开来,其实道理很简单,我们假设司令发...
分类:
编程语言 时间:
2014-06-21 08:36:55
阅读次数:
230
定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图: 1 public static void main(String[] args) { 2 List list = new ArrayList(); 3 list.add(...
分类:
编程语言 时间:
2014-06-21 08:21:07
阅读次数:
230
模板方法在servlet中的应用:http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html原文出处:http://blog.csdn.net/zhengzhb/article/details/7405608定义:定义一个操...
分类:
编程语言 时间:
2014-06-21 08:05:03
阅读次数:
245
原型模式其实就是java的拷贝机制原文出处:http://blog.csdn.net/zhengzhb/article/details/7393528定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:原型模式主要用于对象的复制,它的核心是就是类图中的原型类Pr...
分类:
编程语言 时间:
2014-06-21 07:45:36
阅读次数:
198
一、简单工厂1.1 使用场景 1、工厂类负责创建的对象比较少; 2、客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心; 3、由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。1.2优缺点 优点: 工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的...
分类:
编程语言 时间:
2014-06-20 23:42:08
阅读次数:
368
一、备忘录(Memento)模式结构备忘录对象是一个用来存储另外一个对象内部状态的快照(snapshot)的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉住,并外部化,存储起来,从而可以在将来适合的时候把这个对象还原到存储起来的状态。备忘录模式常常与命令模式和迭代子模式一同使用。...
分类:
编程语言 时间:
2014-06-20 23:40:15
阅读次数:
330
Abstract Factory定义 为一系列相关对象或相互依赖的对象创建一个接口,而无需指定它们的具体类。抽象工厂在这里起到一个约束的作用,并提供所有子类的一个统一外观,来让客户端使用上面的uml图,我们会发现,ConcreteFactory1只会生成A1+B1,是有严格约束的,如果没有这个约束条...
分类:
编程语言 时间:
2014-06-20 19:49:57
阅读次数:
297