随笔分类 - DesignPattern
摘要:观察者模式 1.定义 在对象之间定义一种一对多的依赖关系,使得当一个对象的状态的发生改变时,依赖它的所有对象都会得到通知并被自动更新。观察者模式也叫做发布订阅模式。 观察者模式通常有四个角色 AbstractSubject:抽象被观察者。定义被观察者必须实现的全部职责,且能够动态的增加或取消观察者。
阅读全文
摘要:适配器模式 1.定义 将一个类的接口改变成客户端所期待的另一种接口,从而使因为接口不匹配而不能在一起工作的两个类能够协同工作。 适配器模式通常有四种角色。 AbstractTarget:抽象目标角色。定义将其它类转换为什么接口。 public interface AbstractTarget { v
阅读全文
摘要:策略模式 1.定义 一个类的行为或其算法可以在运行时进行更改。 策略模式通常有3种角色。 AbstractStrategy:抽象策略角色。策略,算法的抽象。 public interface AbstractStrategy { /** * 策略的行为,算法 */ void operate(); }
阅读全文
摘要:装饰者模式 1,定义 动态的给一个对象添加一些额外的职责。 装饰者模式通常有4个角色,就增加功能来说,装饰者模式比生成子类更加的灵活。 Component:抽象构件。通常是一个接口或者抽象类,定义最核心最原始的对象。 public interface AbstractComponent { /**
阅读全文
摘要:责任链模式 1.定义 为请求创建一个接收者对象的链,使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之前的耦合关系。 责任链模式通常有5个角色。责任链模式的重点在**链上,由一条多个接收者对象组成的链去处理相似的请求,并且返回相似的**结果。 Level类:请求和处理的等级 public
阅读全文
摘要:命令模式 1.定义 将一个请求封装成一个对象,从而可以使用不同的请求来参数化客户端。 命令模式通常有3种角色 Receiver:接收者角色。负责执行命令的角色 抽象接收者:具有所有特性的接收者的集合 public abstract class AbstractReceiver { public ab
阅读全文
摘要:中介者模式 1.定义 使用一个中介对象封装一系列的对象交互,中介者使用对象不需要显式的相互作用,从而实降现低耦合度,且可以独立改变被封装的一些列对象之间的交互。 中介者模式也叫做调停者模式:对象之间的依赖就像战争,很混乱,加入一个中心,所有对象都和中心交流,接受中心的调停处理。 中介者模式通常有4个
阅读全文
摘要:原型模式 1.定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 Java自带一个Cloneable接口,原型类实现该接口并重写clone方法,通过调用该方法创建新的对象。这种不通过new关键字来产生一个对象,而是通过对象复制来实现的模式叫做原型模式。 原型类 public cla
阅读全文
摘要:代理模式 1.定义 为其它对象提供一种代理,来控制对这个对象的访问 代理模式也叫作委托模式,它可以提供非常好的访问控制。代理模式包含三种角色: Subject抽象主题角色:可以是抽象类也可以接口,定义最普通的业务类型 RealSubject具体主题角色:被代理类,被委托类,是业务逻辑的具体执行者 P
阅读全文
摘要:建造者模式 1.定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式通常有4个角色 Person抽象类:定义模板方法及基本方法 public abstract class AbstractPerson { private boolean canSwim = t
阅读全文
摘要:模板方法模式 1.定义 定义一个操作中的算法的框架,而将一些步骤的实现延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 使用模板方法模式制造两款汽车。定义汽车必须有的特质:能够发动,鸣笛和停止,不同型号的汽车实现不同。汽车生产完成后需要对汽车的质量进行检验,测试汽车的所
阅读全文
摘要:抽象工厂模式 1.定义 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。 以女娲造人为例,定义人种(Product产品类)及八卦炉(工厂类)。为人类定义肤色及性别属性,从设计角度看,一个具体的对象可以通过肤色及性别确定。生产的工厂类如果只有一个,生产出来的全都是男性或者女性,因
阅读全文
摘要:工厂方法模式 1.定义 定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。 基本工厂方法模式 抽象产品类 public abstract class AbstractProduct { // 公共方法 public void methodOne() { //
阅读全文
摘要:单例模式 1.定义 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例 饿汉式单例模式 public class Singleton { private static final Singleton singleton = new Singleton(); // 构造器私有化,限制产生
阅读全文
浙公网安备 33010602011771号