随笔分类 - 设计模式
摘要:当想为一个对象的组合增加新的能力,并且封装并不重要时。 一个对象结构包含多个对象,希望对这些对象实施一些依赖其具体类型的操作,在访问者中针对每一个具体的类型都提供一个访问操作,不同类型的对象可以有不同的访问操作;或者需要对一个对象结构中的对象进行很多不同的且不相关的操作时,要避免让这些操作“污染”这
阅读全文
摘要:建造者模式是对象的创建模式,可以将一个对象的内部表现和生成过程分割开来,从而使一个建造过程具有生成不同内部表现的对象的功能。 适用场景:RPG中游戏角色、视频播放软件 比如进入RPG游戏创建角色,先创建角色的模型、再创建角色的职业、再创建角色的性别等 输出:
阅读全文
摘要:当有多个对象可以处理同一请求,具体哪个对象要到运行时再定,客户端只需将请求提交到责任链上,无需关心谁处理 适用场景:采购审批子系统、OA中假条审批模块 输出:
阅读全文
摘要:策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 一个对象有很多行为,避免用众多if……else if这种形式把这些行为转移到相应的具体策略中,可避免难以维护的多重选择。 适
阅读全文
摘要:桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。 如果一个系统要在抽象化和具体化之间增加更多的灵活性,避免在两个层次
阅读全文
摘要:门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。 1 //子系统中的类 2 class ModuleA{ 3 public void method(){ 4 //业务代码 5 } 6 ...
阅读全文
摘要:享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。 1 import java.util.HashMap; 2 import java.util.Map; 3 4 //抽象享元接口 5 interface Flyweight{ 6 //state参数为外蕴状态 7 ...
阅读全文
摘要:代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。在一些情况下,一个客户不想或者不被允许直接操作一个对象,可通过一种中间的代理对象实现对目标对象的操作: 1 //抽象目标类 2 abstract class Target{ 3 public ab...
阅读全文
摘要:装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。就像是窗户一样,先是玻璃,玻璃装上框架,再涂上颜色,每进行一层,都会增加新一层赋予的新功能:
阅读全文
摘要:合成模式属于对象的结构模式,有时又叫做“部分——整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。通常用树结构来表示这种部分、整体的关系: 1 import java.util.ArrayList; 2 import java....
阅读全文
摘要:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。就好比插头的例子,有的插头是三个头,有的插头是两个头,三头插头要插到二孔的插座上,用一个三相到两相的转换器(适配器)就可以了。适配器模式有三种:类的适配器,对象的适配器,接口的适配器...
阅读全文
摘要:原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。原型模式又分为浅拷贝和深拷贝模式,类中只有简单数据类型的拷贝属于浅拷贝,如: 1 class Prototype implements Cloneable{ 2 p...
阅读全文
摘要:抽象工厂模式是工厂方法模式的进一步推广: 1 //抽象CPU接口 2 interface CPU{ 3 public void method(); 4 } 5 6 //具体CPU类 7 class CPUA implements CPU{ 8 9 @Override10 ...
阅读全文
摘要:介绍工厂方法模式之前先需要知道简单工厂模式,简单工厂模式是类的创建模式,又叫静态工厂方法模式,简单工厂模式是由一个工厂对象决定创建出哪一种产品类: 1 //抽象产品接口 2 interface Product{ 3 public void method(); 4 } 5 6 //具体产品类...
阅读全文
摘要:建造者模式是对象的创建模式,可以将一个产品的内部表现与产品的生产过程分隔开,从而可以使一个建造过程生成具有不同内部表象的产品。 1 //产品类 2 class Product{ 3 //产品的内部表象 4 private String part1; 5 private Str...
阅读全文
摘要:总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录...
阅读全文

浙公网安备 33010602011771号