Home
Johney Zheng
Cancel

设计模式-策略模式

概念解析 实例分析 概念解析 策略模式,在于将每个算法都封装起来,并且使它们之间可以相互替换,策略模式可以使算法可以独立使用它的用户而发生变化。其设计模式中的三个角色在于: 上下文环境(Context):起着承上启下的封装作用,屏蔽上层应用对策略(算法)的直接访问,封装可能存在的变化 策略的抽象(Strategy):策略(算法)的抽象类,定义统一 的接口,规定每个...

设计模式-适配模式

概念解析 设计模板 实例分析 概念解析 适配模式,指的是:将一个类的接口变成客户端所期望的另一种接口,从而使得原本因接口不匹配而无法一起工作的两个类能够一起工作。即适配模式的作用是: 接口转换,将原有的接口(或方法)转换成另一个接口 用新的接口包装一个已有的类 匹配一个老的组件到一个新的接口 适配模式主要存在三个角色: 目标(Target):即...

设计模式-备忘模式

概念解析 设计模板 实例分析 概念解析 备忘模式,指的是在不破坏内部结构的前提下捕获一个对象的内部状态,这样便可将该对象恢复到原先的保持状态。备忘模式的最大功能是备份,其主要的三个角色: 发起人(Originator):需要进行备份的对象 备忘录(Mementor):备份的状态,即一个备份的存档 备忘管理者(Caretaker):备份存档的管理者,由它负责...

设计模式-代理模式

概念解析 设计模板 实例分析 概念解析 代理模式,指的是对象完成某项动作或任务,是通过对另一个对象的引用来完成的,即“为其他对象提供一个代理以控制这个对象的访问”。其英文称为”Proxy”或”Surrogate”,其核心思想为: 使用一个额外的间接层来支持分散的、可控的、智能的访问 增加一个包装和委托来保护真正的组件,以避免过度复杂 设计过程中包含三个核心...

设计模式-外观模式

概念解析 实例分析 概念解析 外观模式,是最简单也是最常用的模式,存在两个角色: 外观角色(Facade):为子系统封装统一的对外接口,如同子系统的门面。该类不负责具体的业务逻辑,具体业务逻辑则由子系统完成; 子系统(SubSystem):由多个类组成的具有特定功能的子系统:可以是第三方库,也可以是自己的基础库,还可以是子服务,为整个系统提供特定的功能或服务。 ...

设计模式-迭代模式

概念解析 设计模板 实例分析 概念解析 迭代模式,也被称为所谓迭代器模式,其核心是实现一个迭代器,其基本两个方法: 获取当前所指向的元素:current() 将指针移至下一个元素:next() 迭代器的意义在于提供了一个顺序访问容器对象各个元素的方法,能够不暴露对象的内部实现。Python本身实现了迭代器方式。其设计要点为: 需要了解数据结构以及可...

设计模式-组合模式

概念解析 设计模板 实例分析 概念解析 组合模式,指的是:将对象组合成树形结构以表示“整体-部分”的层次结构,组合使得用户对单个对象和复合对象的使用具备一致性。其设计要点为: 理清部分与整体的关系,了解对象的组成结构 组合模式为一种具有层次关系的树形结构,不能再分的叶子节点为具体的组件,即最小的逻辑单元;具有子节点(由多个子组件组成)被称为复合组件,即组合对象...

设计模式-构建模式

概念解析 设计模板 实例分析 概念解析 构建模式,指的是将复杂对象的构建过程和它的表现分离,使得不同的构建过程可以获取(创建)不同的表现。构建模式的三个主要角色: 产品(Product):要构建的对象 构建者(Builder):构建模式的核心类,负责产品的构建过程 指挥者(BuilderManager):构建的管理类,负责管理每一种产品的创建数量和创建顺序...

设计模式-装饰模式

概念解析 设计模板 实例分析 概念解析 装饰模式,指的是动态地给一个对象增加一些额外的职责,就拓展对象来说,装饰模式比生成子类的方式更加灵活。功能上看,和Python自带的装饰器类似,但是装饰模式更倾向于从设计模式的角度,通常是修饰某个类的指定方法(装饰器用法更多更杂)。其设计的要点是: 可以灵活地进行对象的职责添加和拓展功能 可增加任意多个装饰 装饰的顺...

设计模式-职责模式

概念解析 设计模板 实例分析 概念解析 职责模式,也被称为“职责链模式”,其设计目的是为了避免请求发送者和接受者耦合在一起,而是将接受对象连接,形成职责链,知道有对象处理。客户不需要知道请求处理者的明确信息和处理的具体逻辑,需要进行请求发送即可。其设计要点如下: 需要明确请求者和请求内容。 明确有哪些责任人并对责任人进行抽象 责任人可以自由组合 其优点...