java设计模式之访问者模式 Visitor

一、引子   对于系统中一个已经完成的类层次结构,我们已经给它提供了满足需求的接口。但是面对新增加的需求,我们应该怎么做呢?如果这是为数不多的几次变动,而且你不用为了一个需求的调整而将整个类层次结构统统地修改一遍,那么直接在原有类层次结构上修改也许是个 不错 的主意。   但是往往我们...

2012-09-15 11:05:28

阅读数:596

评论数:0

java设计模式之策略模式 Strategy

策略模式(Strategy):定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化不会影响到使用算法的用户。 策略模式是一种定义一系列算法的方法,从概念上看,所有这些算法完成的都是相同的工作,只是实现上不同,它可以以相同的方式调用所有的算法,减少各种算法类与算法使用类之间...

2012-09-15 11:02:00

阅读数:466

评论数:0

java设计模式之状态 模式State

在下面两种情况下均可以使用State模式: 1 一个对象的行为取决于它的状态,并且他必须在运行时刻根据状态改变它的行为。 2 一个操作中含有庞大的多分枝的条件语句,并且这些分支依赖于该对象的状态。这个状态通常用一个或多个枚举常量表示。通常,有多个操作包含这一相同的条件结构。State模式将每一...

2012-09-15 10:57:24

阅读数:497

评论数:0

java设计模式之观察者模式Observer

1、 意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 2、 别名 依赖(Dependents),发布-订阅(Publish-Subscribe) 3、 适用性 当一个抽象模型有两个方面,其中一个方面依赖于...

2012-09-15 10:53:51

阅读数:489

评论数:0

java设计模式之备忘录模式Memento

一、什么是备忘录模式     Memento模式也叫备忘录模式,是行为模式之一,它的作用是保存对象的内部状态,并在需要的时候(undo/rollback)恢复对象以前的状态。 二、备忘录模式的应用场景         如果一个对象需要保存状态并可通过undo或rollback等操作恢复到...

2012-09-15 10:52:58

阅读数:528

评论数:0

java设计模式之中介者模式Mediator

1、 意图 用一个中介者对象来封装一系列的对象交互。中介者使其各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立改变它们之间的交互。 2、 适用性 一组对象以定义好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。一个对象引用其他很对对象并且直接与这些对象通信...

2012-09-15 10:50:38

阅读数:406

评论数:0

java设计模式之迭代器 Iterator

1、 意图 提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示。 2、别名 游标 3、关键思想 迭代器模式的关键思想就是将列表的访问和遍历从列表对象中分离出来并放入一个迭代器(iterator)对象中。迭代器类定义了一个访问该列表的接口。迭代器...

2012-09-15 10:49:17

阅读数:642

评论数:0

java设计模式之命令模式Command

1、 意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排列或记录请求日志,以及支持可撤销的操作。 2、 别名 动作(Action)、事务(Transaction) 3、 适用性 抽象出呆执行的动作以参数化某对象。可以用语言中的回调(cal...

2012-09-15 10:48:22

阅读数:493

评论数:0

java设计模式之职责链模式 Chain of Responsibility

职责链模式: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的藕合关系。将这个对象连成一条链 ,并沿着这条链传递该请求,直到有一个对象处理它为止。  1.当客户提交一个请求时,请求是沿链传递直至有一个ConcreteHandler对象负责处理它。  2.接收者和发送者...

2012-09-15 10:47:21

阅读数:460

评论数:0

java设计模式之代理模式Proxy

1、 意图 为其他对象提供一种代理以控制对这个对象的访问。 2、 适用性   需要为一个对象在不同的地址空间提供局部代表的时候,可以使用远程代理。需要按照创建开销很大对象的时候,可以使用虚代理。  需要控制原始对象的访问的时候,可以使用保护代理。需要在访问对象执行一些附加操作的时...

2012-09-15 10:40:17

阅读数:551

评论数:0

java设计模式之享元模式Flyweight

享元模式是对象的结构模式。 享元模式以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State). 一个内蕴状态是存储在享元对象内部的,并且是不会随环境改变而有所不同的。因此,一个享元可以具有内...

2012-09-15 10:39:21

阅读数:956

评论数:0

java设计模式之外观模式Facade

1、 意图 为子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这一接口使得这一子系统更加容易使用。 2、 适用性 在遇到以下情况时使用: 当你要为一个复杂子系统提供一个简单接口时。客户程序与抽象类的实现部分之间存在着很大的依赖性。当你需要构建一个层...

2012-09-15 10:33:57

阅读数:461

评论数:0

java设计模式之装饰模式Decorator

装饰模式(Decorator):  装饰模式的角色有: —— 抽象构件角色(Component):给出一个抽象接口,以规范准备接收附加责任的对象。 —— 具体构件角色(Concrete Component):定义一个将要接收附加责任的类。 —— 装饰角色(Decorator...

2012-09-15 10:32:42

阅读数:422

评论数:0

java设计模式之组合模式Composite

Composite定义:   将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.    Composite比较容易理解,想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Com...

2012-09-15 10:30:03

阅读数:856

评论数:2

java 设计模式之桥接模式Bridge

生活中的一个例子:     就拿汽车在路上行驶的来说。即有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同的类型,然而它们所行驶的环境(路)也在变化,在软件系统中就要适应两个方面的变化?怎样实现才能应对这种变化呢? 概述: 在...

2012-09-15 10:24:28

阅读数:989

评论数:0

java 设计模式之适配器Adapter

1、 意图 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2、 别名 包装器Wrapper 3、 适用性 你想使用一个已经存在的类,而它的接口不符合你的需求。你想创建一个可以复用的类,该类可以与...

2012-09-15 10:22:25

阅读数:467

评论数:0

java设计模式之单例模式Singleton

1、 意图 保证一个类仅有一个实例,并提供一个反问它的全局访问点。 2、 适用性 在下面情况下可以使用Singleton模式 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例...

2012-09-15 10:21:31

阅读数:436

评论数:0

java 设计模式之原型模式Prototype

1、 意图 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 2、 适用性 当一个系统应该独立于它的产品创建、构成、表示时,要使用Prototype模式;当要实例化的类是在运行时刻制定时。例如,通过动态装载;为了避免创建一个与产品类层次平行的工厂类层次时; 当一个...

2012-09-15 10:20:02

阅读数:384

评论数:0

java设计模式 之生成器模式 Builder

生成器模式也称为建造者模式。生成器模式的意图在于将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示(GoF)。在软件设计中,有时候面临着一个非常复杂的对象的创建工作。这个复杂的对象通常可以分成几个较小的部分,由各个子对象组合出这个复杂对象的过程相对来说比较稳定,但是子对象的创建过...

2012-09-15 10:17:33

阅读数:436

评论数:0

java 设计模式之工厂模式Factory Method

目录(?)[-] 一、工厂模式的介绍二、简单工厂模式 简单工厂模式介绍简单工厂模式角色简单工厂模式的优缺点简单工厂模式的适用环境简单工厂模式的举例 三、工厂方法模式 工厂方法模式的介绍工厂方法模式角色工厂方法模式的优缺点工厂方法模式的适用环境工厂方法模式的举例 四、抽象工厂模...

2012-09-13 16:25:53

阅读数:699

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭