Quantcast
Channel: BlogJava-eric-随笔分类-设计模式
Browsing all 19 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

装饰者模式

一、要完成的任务 星巴兹(Starbuzz)是以扩张速度最快而闻名的咖啡连锁店。如果你在街角看到它的店,在对面街上肯定还会看到另一家。因为扩张速度实在太快了,他们准备更新订单系统,以合乎他们的饮料供应要求。他们原先的类设计是这样的……   购买咖啡时,也可以要求在其中加入各种调料,例如:蒸奶(Steamed...

View Article



Image may be NSFW.
Clik here to view.

观察者模式

一、要完成的任务 此系统中的三个部分是气象站(获取实际气象数据的物理装置)、WeatherData对象(追踪来自气象站的数据,并更新布告板)和布告板(显示目前天气状况给用户看)。   二、Observer模式   1、定义观察者模式 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。     2.设计气象站     三、代码实现...

View Article

Image may be NSFW.
Clik here to view.

组合模式

  设计模式之Composite(组合) Composite定义: 将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性....

View Article

Image may be NSFW.
Clik here to view.

享元模式

一、FlyWeight模式定义: 运用共享技术有效地支持大量细粒度对象。 二、模式解说 也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。在Flyweight模式中,由于要产生各种各样的对象,所以在Flyweight(享元)模式中常出现Factory模式。Flyweight的内部状态是用来共享的,Flyweight...

View Article

Image may be NSFW.
Clik here to view.

外观模式

Facade模式是这样描述的:        为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层的接口,使子系统更加容易使用。...

View Article


Image may be NSFW.
Clik here to view.

抽象工厂模式

抽象工厂模式(Abstract Factory):为创建一组相关或者互相依赖的对象提供一个接口,而无需指定它们对应的具体类。 通用类图如下: 例如,我们现在有两种产品A和B,而产品A和B分别都有两个厂商1和2进行生产,在这里我们把不同的厂商1、厂商2理解为牌子1和牌子2,那么厂商1就生产A1、B1,厂商2生产A2、B2。...

View Article

Image may be NSFW.
Clik here to view.

代理模式(静态代理和动态代理)

一、 Proxy模式定义: 为其他对象提供一种代理以控制这个对象的访问。 二、 模式解说...

View Article

Image may be NSFW.
Clik here to view.

工厂方法设计模式

在设计模式中,Factory Method也是比较简单的一个,但应用非常广泛,EJB,RMI,COM,CORBA,Swing中都可以看到此模式的影子,它是最重要的模式之一.在很多地方我们都会看到xxxFactory这样命名的类,那么,什么是Factory Method,为什么要用这个模式,如何用Java语言来实现该模式,这就是本文想要带给大家的内容. 基本概念...

View Article


Image may be NSFW.
Clik here to view.

建造者模式

Builder模式定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节.Builder模式是非常类似抽象工厂模式,细微的区别大概只有在反复使用中才能体会到. 为何使用? 是为了将构建复杂对象的过程和它的部件解耦.注意:...

View Article


Image may be NSFW.
Clik here to view.

原型模式

原型模式(Prototype)属于创建型模式,实现了对象的创建;具体而言,它实现了对象的复制(拷贝)。 关于对象的复制,我们需要考虑以下两个问题: 1.对象实时状态的复制; 2.对象引用成员变量的复制。...

View Article

Image may be NSFW.
Clik here to view.

Singleton(单态)模式 和 Double-Checked Locking(双重检查锁定)模式

确保一个特定的类只有一个对象被实例化。 Singleton:用于单线程应用程序 public class Singleton {   private Singleton(){}   //在自己内部定义自己一个实例,是不是很奇怪?   //注意这是private 只供内部调用   private static Singleton instance = new Singleton();...

View Article

Image may be NSFW.
Clik here to view.

责任链模式

...

View Article

Image may be NSFW.
Clik here to view.

命令模式

1.这一节我们的任务是创建一个类似智能家居的万能遥控器,控制各种家电。我们需要将“请求”封装成对象(一个命令对象通过在特定接收者上绑定一组动作来封装请求),以便使用不同的请求、队列、或者日志来参数化其对象——这就是命令模式。 2.我们具体来看一个例子: 首先我们要完成对命令的对象封装: public interface Command {     public void execute(); }...

View Article


Image may be NSFW.
Clik here to view.

解释器模式

Interpreter模式也叫解释器模式,是由GoF提出的23种设计模式中的一种。Interpreter是行为模式之一,它是一种特殊的设计模式,它建立一个解释器,对于特定的计算机程序设计语言,用来解释预先定义的文法。 本文介绍设计模式中的解释器(Interpreter)模式的概念,用法,以及实际应用中怎么样使用Interpreter模式进行开发。 Interpreter模式的概念...

View Article

Image may be NSFW.
Clik here to view.

中介者模式

中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。   通用类图:...

View Article


Image may be NSFW.
Clik here to view.

备忘录模式

一、 模式定义: 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存前的状态。 二、 模式解说 在程序运行过程中,某些对象的状态处在转换过程中,可能由于某种原因需要保存此时对象的状态,以便程序运行到某个特定阶段,需要恢复到对象之前处于某个点时的状态。如果使用一些公有接口让其它对象来得到对象的状态,便会暴露对象的实现细节。 三、 结构图   1)...

View Article

Image may be NSFW.
Clik here to view.

策略模式

设计模式解读之一: 策略模式 1. 模式定义 把会变化的内容取出并封装起来,以便以后可以轻易地改动或扩充部分,而不影响不需要变化的其他部分; 2. 问题缘起 当涉及至代码维护时,为了复用目的而使用继承,结局并不完美。对父类的修改,会影响到子类型。在超类中增加的方法,会导致子类型有该方法,甚至连那些不该具备该方法的子类型也无法免除。示例,一个鸭子类型: public abstract class...

View Article


Image may be NSFW.
Clik here to view.

适配器模式

类适配器 客户的开发人员定义了一个接口,期望用这个接口来完成整数的求和操作,接口定义如下:   public interface Operation{          public int add(int a,int b);    }   开发人员在了解这个接口的定义后,发现一个第三方类,里面有一个方法能实现他们期望的功能,其代码如下:   public class OtherOperation{...

View Article

Image may be NSFW.
Clik here to view.

访问者模式

具体元素的接口与实现类 public interface Person {       void accept(Visitor visitor); } public class Woman implements Person{     public void accept(Visitor visitor) {           visitor.visit(this);     } }...

View Article
Browsing all 19 articles
Browse latest View live


Latest Images