摘要:
装饰模式(Decorator)定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。 这里的“不改变现有对象结构”主要是指“使用的是同一个对象”。 装饰模式的优点有: 1、采用装饰模式扩展对象的功能比采用继承方式更加灵活。 2、可以设计出多个不同的具体装饰类,创 阅读全文
摘要:
桥接模式(Bridge)定义:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。 如上图所示,平直的那条"聚合关系"就像一座桥一样。 实现部分: 抽象部分: 调用方式: 执行结果: 阅读全文
摘要:
代理模式(Proxy)定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 代理模式的优点有: 1、代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用; 2、代理对象可以扩展目标对象的 阅读全文
摘要:
左图是:对象结构型适配器模式;右图是:类结构型适配器模式。常用的是第一种方式。 对象结构型适配器模式与代理模式的UML类图比较接近,对比的看一下: 左图是:对象结构型适配器模式;右图是:代理模式。适配器模式,可以看作是简化的代理模式,Adaptee无需实现Target接口。 适配器模式的本质就是:A 阅读全文
摘要:
建造者模式(Builder)定义:将一个复杂对象的构造与其表示分离,使同样的构造过程可以创建不同的表示。它将一个复杂的对象分解为多个简单对象,然后一步一步构建这个对象。所构造的对象的组成部分(数量、顺序)不变,而每一个组成部分的具体内容是可变的。 建造者模式的优点: 1、各个具体的建造者相互独立。 阅读全文
摘要:
工厂方法模式(FactoryMethod)定义:定义一个用于创建对象(产品对象)的接口,称之为工厂,由实现了这个工厂接口的具体类来创建对象(产品对象)。 工厂方法模式的优点是:可以方便的添加新的产品对象,而不用修改原来的代码,满足开闭原则。 如UML类图所示,目前有ProductA和ProductB 阅读全文
摘要:
先直观对比一下抽象工厂模式(上图),与工厂方法模式(下图)的UML类图的区别。可以看出: 工厂方法模式是一个工厂接口,即多个工厂生产一种(等级)产品; 而抽象工厂模式是多个工厂接口,多个工厂生产多种(等级)产品。 抽象工厂模式(AbstractFactory)定义:提供一个称为抽象工厂的接口,其每一 阅读全文
摘要:
原型模式(Prototype)定义:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。 在Java中,通过实现Cloneable接口中的clone()方法,可以方便的实现原型模式,具体代码如下: 原型类: 1 public class Realizetype imp 阅读全文
摘要:
单例模式(Singleton)定义:一个类只能有一个实例,且该类能自行创建这个实例的模式。 单例模式有三个特点: 1、单例类只有1个实例对象。 2、该单例对象必须由单例类自己创建。 3、单例类对外提供一个访问该唯一实例的全局访问点。 懒加载实现,线程安全: 1 public class LazySi 阅读全文