摘要: 摘自:策略模式(Strategy):它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策 略模式让算法的变化不会影响到使用算法的客户。(原文:The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it.)图1 策略模式类图 优点: 1、 简化了单元测试,因为每个算法都有自己的类,. 阅读全文
posted @ 2013-11-04 16:23 nygfcn 阅读(282) 评论(0) 推荐(0)
摘要: 命令模式是将一类对象的功能操作进行抽象,一般来说,这些对象有相同的方法,所以这类对象有着类似的操作,我们通过抽象,就可以定义出一个命令对象,通过 这样的方式,用户程序在使用的时候,只与该命令对象打交道,而不用与一类对象打交道,降低了耦合性,提高了程序设计的灵活性。命令模式的结构如图2所示: 图2 命令模式结构图Command: 定义命令的接口,声明执行的方法。ConcreteCommand: 命令接口实现对象,是“虚”的实现;通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。Receiver: 接收者,真正执行命令的对象。任何类都可能成为一个接收者,只要它能够实现命令要求实现的相应功 阅读全文
posted @ 2013-11-04 16:01 nygfcn 阅读(167) 评论(0) 推荐(0)
摘要: 摘自:http://www.open-open.com/lib/view/open1328059700311.html在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1.泛化(Generalization)【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。【箭头指向】:带三角箭头的实线,箭头指向父类2.实现(Real 阅读全文
posted @ 2013-11-04 15:28 nygfcn 阅读(229) 评论(0) 推荐(0)
摘要: 模板方法Gof的定义是:在一个方法里定义算法的骨架,将一些步骤延迟到其子类。如下图:AbstractClass主要是定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。这有点像C语言中的一个“钩子(hook)”;同时将公用的代码移植到TemplateMethod中,实现的代码的公用。代码: public abstract class AbstractClass { protected abstract void operation1(); protected ... 阅读全文
posted @ 2013-11-04 15:05 nygfcn 阅读(97) 评论(0) 推荐(0)