摘要:简介 命令模式(Command Pattern)是一种行为型模式,它将请求封装成一个对象,从而你可以用不同的请求将客户参数化,对请求排队或记录请求日志,以及支持可撤销操作。 命令模式的角色 抽象命令(Command)接口:定义抽象命令接口,通常包含一个execute()方法 具体命令(Concret
阅读全文
摘要:简介 状态模式(State Pattern)是一种行为型设计模式,它允许对象在内部状态改变时改变它的行为。 状态模式的角色 环境(Context)类:定义用户所处的环境,并且维护一个状态对象,表示当前所处环境的状态 抽象状态(State)类:定义一个接口,封装与环境相关的一个特定状态的行为 具体状态
阅读全文
摘要:简介 备忘录模式(Memento Pattern)是一种行为型设计模式,它允许在不破坏封装性的前提下,捕获并保存对象的内部状态,以便在对象需要时,恢复到之前的状态。 备忘录模式的角色 发起人(Originator)类:负责创建一个备忘录对象,用以记录当前时刻自身的内部状态,并且可以使用备忘录对象恢复
阅读全文
摘要:简介 责任链模式(Chain Of Responsibility Pattern)允许沿着处理者链进行发送,避免请求者与发送者耦合在一起,每个处理者在收到请求后选择处理或者传递给下一个处理者,让多个对象都有接收到请求的可能性,这些对象形成链式结构,并且沿着这条链路传递请求,直至有对象处理请求。值得注
阅读全文
摘要:简介 策略模式(Strategy Pattern)定义一系列的类,每个类封装一个算法,并且使它们之间可以相互转换,这些封装了算法的类可以称为策略。为保证这些策略在使用时具有一致性,一般会提供一个抽象策略类来制定规则,而每种策略对应一个具体策略类。 策略模式的角色 抽象策略(Strategy)类:它为
阅读全文
摘要:简介 享元模式(Flyweight Pattern)是一种用于优化创建和使用对象的结构型设计模式。享元模式以共享的方式高效地支持大量细粒度的对象的重用,它的主要目的是通过共享对象来减少内存的使用和提高性能。在很多系统软件中,会创建大量相似的对象,这些对象可能只有部分属性不同,享元模式就是为了处理这种
阅读全文
摘要:引言 张三从国内带了个家用电器(220V)去到美国,但是插上电以后却发现电器不能正常工作。经过了解,原来美国的标准电压是120V,而国内是220V。于是张三恍然大悟:原来是电压不适配导致的机器无法正常工作。张三找人要来了变压器,于是解决了这个问题。 这里所说的“变压器”,就相当于编程时的适配器。为了
阅读全文
摘要:简介 装饰模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。装饰模式是用组合的方式将装饰对象和被装饰对象组合在一起,当调用装饰后的对象的方法时,实际是先执行装
阅读全文
摘要:简介 组合模式(Composite Pattern)是一种结构型设计模式,它允许将对象组合成树形结构来表现“部分-整体”的关系。当对于用户来说,可以不区分树形结构下子节点和叶子结点时,就可以考虑使用组合模式。 组合模式的角色 抽象根节点:定义组合节点和叶子节点的共同接口,包含业务方法(抽象理解为组合
阅读全文
摘要:简介 桥接模式(Bridge Pattern)将抽象和实现分离,使它们可以独立变化。它是用组合关系来代替继承关系,满足合成复用原则,从而降低了抽象和实现这两个可变维度的耦合度 桥接模式的角色 抽象化(Abstraction)角色:定义抽象类,并包含一个对实现化对象的引用 扩展抽象化(Refined
阅读全文
摘要:简介 代理模式(Proxy Pattern)是一种结构型设计模式。它为其他对象提供一种代理,以控制对这个对象的访问。简单来说,当客户端不方便直接访问一个对象,或者需要在访问这个对象之前或之后执行一些额外的操作时,就可以使用代理对象来代替目标对象进行操作。 代理模式的角色 抽象主题角色Subject:
阅读全文
摘要:引言 昨夜见军帖,可汗大点兵,军书十二卷,卷卷有爷名。阿爷无大儿,木兰无长兄,愿为市鞍马,从此替爷征。东市买骏马,西市买鞍鞯,南市买辔头,北市买长鞭。————《木兰诗 节选》 花木兰替父从军,欲买马、鞍鞯、辔头和长鞭,需要分别去往东市、西市、南市和北市。换言之,花木兰一人就得与四个贸易场所有贸易关系
阅读全文
摘要:简介 原型模式(Prototype Pattern)指的是用一个已经创建的对象作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 原型模式的角色 抽象原型类:规定具体原型对象必须实现的 方法 具体原型类:实现抽象原型类的 方法,它是可被复制
阅读全文
摘要:简介 建造者模式指的是将一个复杂对象的创建与表示分离,使得同样的创建过程可以创建不同的表示,分离了部件的构造(由 Builder 负责)和装配(由 Director 负责)。从而可以构造出复杂的对象,这个模式适用于某个对象的构建过程复杂的情况。由于实现了构建和装配的解耦,不同的构建器,相同的装配,也
阅读全文
摘要:简介 工厂方法模式是一种创建对象的设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪个类。工厂方法把实例化操作推迟到子类中实现。 工厂方法模式的角色 抽象工厂类:声明工厂方法,负责创建产品对象 具体工厂类:实现抽象工厂类,负责创建具体的产品对象 抽象产品类/接口:定义产品的抽象类/接口,
阅读全文
摘要:引言 张三和其舍友收假后回到宿舍,并闲聊了起来。张三说:“我昨天吃了家店,菜品很不错。”其舍友也说:“我昨天也在校门口一家新开的店吃了一下,那家新开的店也很不错。”张三说:“我昨天吃的是鸡公煲,你吃的是什么?”其舍友说:“巧了,我吃的也是鸡公煲。”张三说:“学校门口有好几家鸡公煲呢,你吃的是哪一家的
阅读全文