
DesignPatterns
iteye_14855
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式之Prototype(原型)
定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. Prototype 模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的 细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象 通过请求原型对象拷贝它们自己来实施创建。 如何使用? 因为Java 中的提供clone()方法来实现对象的克隆,所以 Prototype 模式实现...2006-12-28 21:22:42 · 87 阅读 · 0 评论 -
设计模式之Chain of Responsibility(职责链)
Chain of Responsibility 定义 Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些 类之间是一个松散的耦合,唯一共同点是在他们之间传递request. 也就是说,来了一个请 求,A 类先处理,如果没有处理,就传递到B 类处理,如果没有处理,就传递到C 类处理, 就这样象一个链条(chain)一样传递下...2007-01-20 02:47:05 · 100 阅读 · 0 评论 -
设计模式之Command
Command 模式是最让我疑惑的一个模式,我在阅读了很多代码后,才感觉隐约掌握其大概原 理,我认为理解设计模式最主要是掌握起原理构造,这样才对自己实际编程有指导作 用.Command 模式实际上不是个很具体,规定很多的模式,正是这个灵活性,让人有些 confuse. Command 定义 不少Command 模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单 选择一个命令时,...2007-01-20 02:49:47 · 139 阅读 · 0 评论 -
设计模式之State
设计模式之State State 的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为. 何时使用? State 模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else 进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取 State 模式了. 不只是根据状态,也有根据属性.如果某个对象的属性不同,对象的行为就不一样,这点在...2007-01-20 02:51:02 · 145 阅读 · 0 评论 -
设计模式之Strategy(策略)
Strategy 是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个 个封装成单独的类. Stratrgy 应用比较广泛,比如, 公司经营业务变化图, 可能有两种实现方式,一个是线条曲 线,一个是框图(bar),这是两种算法,可以使用Strategy 实现. 这里以字符串替代为例, 有一个文件,我们需要读取后,希望替代其中相应的变量,然后输出. 关于替代其中变量的方法可能有...2007-01-20 02:51:49 · 129 阅读 · 0 评论 -
设计模式之Mediator(中介者)
Mediator 定义: 用一个中介对象来封装一系列关于对象交互行为. 为何使用Mediator? 各个对象之间的交互操作非常多;每个对象的行为操作都依赖彼此对方,修改一个对象的行 为,同时会涉及到修改很多其他对象的行为,如果使用Mediator 模式,可以使各个对象间的 耦合松散,只需关心和 Mediator 的关系,使多对多的关系变成了一对多的关系,可以降低系 统的复杂性,提高可修改扩展性....2007-01-20 02:53:09 · 149 阅读 · 0 评论 -
设计模式之Interpreter(解释器)
Interpreter 定义: 定义语言的文法 ,并且建立一个解释器来解释该语言中的句子. Interpreter 似乎使用面不是很广,它描述了一个语言解释器是如何构成的,在实际应用中, 我们可能很少去构造一个语言的文法.我们还是来简单的了解一下: 首先要建立一个接口,用来描述共同的操作. public interface AbstractExpression { void interpret(...2007-01-20 02:53:57 · 153 阅读 · 0 评论 -
设计模式之Visitor
Visitor 定义 作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作 用于这些对象的新操作. 在Java 中,Visitor 模式实际上是分离了collection 结构中的元素和对这些元素进行操作 的行为. 为何使用Visitor? Java 的Collection(包括Vector 和Hashtable)是我们最经常使用的技术,可是Collection 好...2007-01-20 02:54:35 · 141 阅读 · 0 评论 -
设计模式之Factory
定义:提供创建对象的接口. 为何使用? 工厂模式是我们最常用的模式了,著名的Jive 论坛系统,就大量使用了工厂模式. 为什么说工厂模式是最常用,因为工厂模式就相当于创建对象的new. 工厂模式就是用来创 建对象的. 比如我们有一个类Sample 我们要创建Sample 的对象: Sample sample=new Sample(); 如果我们要在创建sample 之前做点事情,比如,赋值等,可以...2007-01-20 02:58:33 · 125 阅读 · 0 评论 -
设计模式之Observer
Java 深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模 式,将使自己对java 中的接口或抽象类应用有更深的理解.设计模式在java 的中型系统中应 用广泛,遵循一定的编程模式,才能使自己的代码便于理解,易于交流,Observer(观察者)模 式是比较常用的一个模式,尤其在界面设计中应用广泛,而本站所关注的是Java 在电子商务 系统中应用,因此想...2007-01-20 02:46:21 · 134 阅读 · 0 评论 -
设计模式之Memento(备忘机制)
Memento 定义: memento 是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原 先保存的状态. Memento 模式相对也比较好理解,我们看下列代码: public class Originator { private int number; private File file = null; public Originator(){} // 创建一个Memen...2007-01-20 02:45:28 · 107 阅读 · 0 评论 -
设计模式之Template
Template 定义: 定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中. 其实Java 的抽象类本来就是Template 模式,因此使用很普遍.而且很容易理解和使用,我们 直接以示例开始: public abstract class Benchmark { /** * 下面操作是我们希望在子类中完成 */ public abstract void benchmark(); /** *...2007-01-20 02:41:18 · 105 阅读 · 0 评论 -
设计模式之Singleton(单态)
定义: Singleton 模式主要作用是保证在Java 应用程序中,一个Class 只有一个实例存在。 一个实例表示是单线程,在很多操作中,比如建立目录 数据库连接都需要单线程操作, Singleton 模式经常用于控制对系统资源的控制,我们常常看到工厂模式中工厂方法也用 Singleton 模式实现的. 如何使用? 一般Singleton 模式通常有几种形式: public class Si...2006-12-28 21:28:10 · 82 阅读 · 0 评论 -
设计模式之Builder
Builder 模式定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder 模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型 和内容就可以构建它们.用户不知道内部的具体构建细节.Builder 模式是非常类似抽象工 厂模式,细微的区别大概只有在反复使用中才能体会到. 为何使用? 是为了将构建复杂对象的过程和它的部件解耦.注意: ...2007-01-20 02:33:30 · 90 阅读 · 0 评论 -
设计模式之Facade(外观)
Facade 的定义: 为子系统中的一组接口提供一个一致的界面. Facade 一个典型应用就是数据库JDBC 的应用,如下例对数据库的操作: public class DBCompare { Connection conn = null; PreparedStatement prep = null; ResultSet rset = null; try { Class.forName( "&l...2007-01-20 02:34:23 · 93 阅读 · 0 评论 -
设计模式之Proxy(代理)
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼 得水,享受游刃有余的乐趣. Proxy 是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结 构,Proxy 是代理的意思,我们也许有代理服务器等概念,代理概念可以解释为:在出发点到 目的地之间有一道中间层,意为代理. 设计模式中定义: 为其他对象提供一种代理以控制对这个对象的访问. 为什么...2007-01-20 02:35:39 · 128 阅读 · 0 评论 -
设计模式之Adapter(适配器)
定义: 将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和 Adaptor(适配器)两个身份. 为何使用? 我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口, 但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口。 怎么办? 使用Adapter,在这两种接口之间创建一个混合接口(混血儿). 如何使用? 实现Adapt...2007-01-20 02:36:34 · 121 阅读 · 0 评论 -
设计模式之Composite(组合)
Composite 定义: 将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和 组合对象的使用具有一致性. Composite 比较容易理解,想到Composite 就应该想到树形结构图。组合体内这些对象都有 共同接口,当组合体一个对象的方法被调用执行时,Composite 将遍历(Iterator)整个树形 结构,寻找同样包含这个方法的对象并实现调用执行。可以用...2007-01-20 02:38:03 · 104 阅读 · 0 评论 -
设计模式之Bridge
Bridge 定义 : 将抽象和行为划分开来,各自独立,但能动态的结合. 为什么使用? 通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete 之间关系可 能有以下两种: 1. 这多个具体实现之间恰好是并列的,如前面举例,打桩,有两个concrete class:方形桩和 圆形桩;这两个形状上的桩是并列的,没有概念上的重复,那么我们只要使用继承就可以了...2007-01-20 02:39:24 · 343 阅读 · 0 评论 -
设计模式之Flyweight(享元)
板桥里人 http://www.jdon.com 2002/05/02 Flyweight 定义: 避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类). 为什么使用? 面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞 大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑耗 费内存,那么我们还是要"求同存异",找出...2007-01-20 02:40:35 · 91 阅读 · 0 评论 -
追MM与Java的23种设计模式[转]
[精彩] ...2007-01-20 03:09:12 · 120 阅读 · 0 评论