Home
Johney Zheng
Cancel

设计模式-回调机制

概念解析 设计模板 实例分析 概念解析 回调机制,回调指的是:把函数作为参数,传递给另一个函数,延迟到另一个函数的某个时刻执行的过程为回调,本质上是函数式的一种体现。如果语言只支持面向对象编程,则可以使用策略模式来实现回调机制。 优点: 避免重复代码 增强代码可维护性 有更多定制功能 缺点: 避免“回调地狱”:多重的回调函数调用 常用场景:...

设计模式-对象池技术

概念解析 设计模板 实例分析 概念解析 对象池技术,指的是设计一个集合,其中包含了初始化且可以使用的对象,当需要使用相关对象时,直接从中获取,且使用完后需要归还。与前置“享元模式”的区别在于,享元模式没有“占用”的概念,享元对象都是共享的,而对象池中的对象则在“借出”期间是被独占的,可以修改对象的部分属性,而享元独享的属性通常无法被更改。 对象池的两个核心对象: ...

设计模式-过滤器模式

概念解析 设计模板 实例分析 概念解析 过滤器模式,即根据某种规则,从一组对象中过滤掉一些不符合要求的对象的过程。主要包含三个角色: 过滤的目标(Target):即要被过滤的对象 过滤器(Filter):负责过滤不需要的对象,一般一个规则对应一个类 过滤器类(FilterChain):过滤器集合,负责管理和维护过滤器。 过滤器模式类图如下: 优点...

设计模式-解释模式

概念解析 实例分析 概念解析 解释模式,是一种难度较高的设计模式:定义一个语言/文法的一种表示,并定义一个解释器,该解释器使用该文法来解释语言中的句子。 解释模式通常用于设计一个简单的语法分析工具,最显著的优点是:拓展性好,修改相应语法规则,需要修改对应模块语法即可。 解释模式类图如下: 实例分析 场景分析:设计一个简单的加减法计算器:如输入a/b/c的值,计算公式为...

设计模式-桥接模式

概念解析 实例分析 概念解析 桥接模式,与策略模式类似,只是桥接模式侧重于软件结构,策略模式侧重于对象行为。其功能是:将抽象和实现解耦,使得可以独立地变化。 桥接模式类图如下: 使用场景主要是: 产品可以进行划分为多个分类和组合,即多个独立变化的维度,每个维度都希望独立进行扩展 对于由于继承/多重继承导致系统类数目急剧增加的系统,可以改用桥接模式来实现 ...

设计模式-模板模式

概念解析 设计模板 实例分析 概念解析 模板模式,指的是定义一个操作中的算法框架,而将算法中用到的某些具体步骤放到子类中实现,使得子类在不改变算法结构的情况下重新定义该算法的某些特定步骤。其实模板模式本质上只是利用了对象的继承机制。 基本适用场景:公共方法提取复用,避免代码重复;或者希望通过子类来决定父类算法中的某个步骤是否执行,实现子类对父类的反向控制。 设计模板 ...

设计模式-访问模式

概念解析 设计模板 实例分析 概念解析 访问模式,指的是封装一些作用于某种数据结构中各个元素的操作,可以在不改变数据结构的前提下定义作用于这些元素的新操作。该模式主要存在三个角色: 访问者(Visitor):负责对数据节点进行访问和操作 数据节点(DataNode):被操作的数据对象 对象结构(ObjectStructure):数据结构的管理类,也是数据对...

设计模式-享元模式

概念解析 实例分析 概念解析 享元模式,该模式能够支持大量细粒度对象的复用。所谓细粒度对象,指的是为基本的轻量级对象,享元模式能够实现共享细粒度对象从而节约资源成本。对应的享元对象两个关键属性: 内部状态:存储在享元对象内部并且不会随环境改变而改变的状态 外部状态:随环境改变而改变,不可以共享的状态,该状态在创建或者使用过程中引入 享元模式的两个主要角色为: ...

设计模式-命令模式

概念解析 设计模板 实例分析 概念解析 命令模式,能够讲一个请求封装成一个对象,从而能够使用不同的请求把客户端参数化,对请求进行排队或者记录请求日志,可以提供命令的撤销和恢复功能。其核心是将具体的命令和对应的接受者相关联,使得调用方不用关心具体的行动执行者以及如何执行,只要发送正确的命令,就能准确无误地完成相应的任务。命令模式的三个核心角色: 命令(Command...

设计模式-工厂模式

概念解析 实例分析 概念解析 工厂模式,其目的是建立通用的”工厂类”,得到不同类的实例。工厂模式包含三种模式,从简单到高级不断升级:简单工厂模式、工厂方法模式、抽象工厂模式。 简单工厂模式:能够根据输入参数不同创建不同类的实例:定义一个创建对象的接口,通过参数来决定创建哪个类的实例。 工厂方法模式:定义一个创建对象的接口:让子...