
design pattern
cstur4
lllllll
展开
-
visitor模式
Visitor 定义作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作.在Java 中,Visitor 模式实际上是分离了collection 结构中的元素和对这些元素进行操作的行为.为何使用Visitor?Java 的Collection(包括Vector 和Hashtable)是我们最经常使用的技术,可是Collect转载 2012-10-14 10:47:35 · 309 阅读 · 0 评论 -
Factory 模式
工厂模式定义:提供创建对象的接口.为何使用?工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模转载 2012-10-22 00:38:31 · 308 阅读 · 0 评论 -
proxy 模式
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣.代理模式是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,Proxy是代理的意思,我们也许有代理服务器等概念,代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理.设计模式中定义: 为其他对象提供一种代理以控制对这个对象的访问.转载 2012-10-22 00:38:16 · 380 阅读 · 0 评论 -
Builder模式
Builder模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节.Builder模式是非常类似抽象工厂模式,细微的区别大概只有在反复使用中才能体会到.为何使用?是为了将构建复杂对象的过程和它的部件解耦.注意转载 2012-10-22 00:37:37 · 350 阅读 · 0 评论 -
Flyweight 模式
Flyweight 定义:避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类).为什么使用?面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑耗费内存,那么我们还是要"求同存异",找出这些对象群的共同点,设计一个元类,封装可以被共享的类,另外,转载 2012-10-22 00:39:16 · 270 阅读 · 0 评论 -
Bridge模式
Bridge模式定义 :将抽象和行为划分开来,各自独立,但能动态的结合。任何事物对象都有抽象和行为之分,例如人,人是一种抽象,人分男人和女人等;人有行为,行为也有各种具体表现,所以,“人”与“人的行为”两个概念也反映了抽象和行为之分。在面向对象设计的基本概念中,对象这个概念实际是由属性和行为两个部分组成的,属性我们可以认为是一种静止的,是一种抽象,一般情况下,行为是转载 2012-10-22 00:38:51 · 411 阅读 · 0 评论 -
Chain of Responsibility模式
Chain of Responsibility 定义Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合,唯一共同点是在他们之间传递request. 也就是说,来了一个请求,A 类先处理,如果没有处理,就传递到B 类处理,如果没有处理,就传递到C 类处理,就这样象一个链条(chain)一样转载 2012-10-14 11:14:00 · 287 阅读 · 0 评论 -
State 模式
State 的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为.何时使用?State 模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else进行状态切换, 如果针对状态的这样判断切换反复出现,我们就要联想到是否可以采取State 模式了.不只是根据状态,也有根据属性.如果某个对象的属性不同,对象的行为就不一样,这点在数据库系转载 2012-10-14 11:03:23 · 266 阅读 · 0 评论 -
Mediator 模式
Mediator 定义:用一个中介对象来封装一系列关于对象交互行为.为何使用Mediator?各个对象之间的交互操作非常多;每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为,如果使用Mediator 模式,可以使各个对象间的耦合松散,只需关心和 Mediator 的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可修转载 2012-10-14 10:52:32 · 318 阅读 · 0 评论 -
Template 模式
Template 定义: 定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中.其实Java 的抽象类本来就是Template 模式,因此使用很普遍.而且很容易理解和使用,我们直接以示例开始: public abstract class Benchmark { /** * 下面操作是我们希望在子类中完成 */转载 2012-10-14 19:16:16 · 257 阅读 · 0 评论 -
Memento 模式
Memento 定义:memento 是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态.Memento 模式相对也比较好理解,我们看下列代码: public class Originator { private int number; private File file = null; public转载 2012-10-14 19:12:25 · 356 阅读 · 0 评论 -
Observer(观察者) 模式
Observer(观察者)模式是比较常用的一个模式,尤其在界面设计中应用广泛,而本站所关注的是Java 在电子商务系统中应用,因此想从电子商务实例中分析Observer 的应用.虽然网上商店形式多样,每个站点有自己的特色,但也有其一般的共性,单就"商品的变化,以便及时通知订户"这一点,是很多网上商店共有的模式,这一模式类似Observer patern.具体的说,如果网上商店中商品在名转载 2012-10-14 11:17:39 · 477 阅读 · 0 评论 -
Decorator模式
Java I/O 包中的Decorator模式介绍 JDK为程序员提供了大量的类库,而为了保持类库的可重用性,可扩展性和灵活性,其中使用到了大量的设计模式,本文将介绍JDK的I/O包中使用到的Decorator模式,并运用此模式,实现一个新的输出流类。 Decorator模式简介 Decorator模式又名包装器(Wrapper),它的主转载 2012-10-14 10:29:17 · 444 阅读 · 0 评论 -
观察者模式
import java.util.Observable;import java.util.Observer;public class Test { public static void main(String[] args) { Thief thief = new Thief(); Guard guard = new Guard(); thief.addObserv原创 2012-10-14 11:31:33 · 304 阅读 · 0 评论 -
大道至简
一、创建型模式 FACTORY模式 人才市场:以往是要哪个人才,就找哪个人才,效率低,现在有了人才市场,我们只需直接去人才市场挑一个好了; BUILDER模式 生产流水线:以前是手工业作坊式的人工单个单个的生产零件然后一步一步组装做,好比有了工业革命,现在都由生产流水线代替了。如要造丰田汽车,先制定汽车的构造如由车胎、方向盘、发动机组成。再以此构造标准生产丰转载 2012-10-14 11:22:16 · 633 阅读 · 0 评论 -
Command 模式
Command 模式是最让我疑惑的一个模式,我在阅读了很多代码后,才感觉隐约掌握其大概原理,我认为理解设计模式最主要是掌握起原理构造,这样才对自己实际编程有指导作用.Command 模式实际上不是个很具体,规定很多的模式,正是这个灵活性,让人有些confuse.Command 定义不少Command 模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单选择一转载 2012-10-14 11:07:45 · 292 阅读 · 0 评论 -
Strategy 模式
Strategy 是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类.Stratrgy 应用比较广泛,比如, 公司经营业务变化图, 可能有两种实现方式,一个是线条曲线,一个是框图(bar),这是两种算法,可以使用Strategy 实现.这里以字符串替代为例, 有一个文件,我们需要读取后,希望替代其中相应的变量,然后输出.关于替代其中变量的方转载 2012-10-14 10:58:14 · 301 阅读 · 0 评论 -
Composite模式
Composite模式定义:将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.Composite比较容易理解,想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。可以用牵一转载 2012-10-22 00:38:41 · 373 阅读 · 0 评论