随笔分类 -  设计模式

详解 设计原则 与 23种设计模式
摘要:概念: 访问者模式(Visitor Pattern),封装一些作用于 某种数据结构 的 各元素的操作,它可以在 不改变数据结构 的前提下定义作用于这些元素的 新的操作 主要将 数据结构 与 数据操作 分离,解决 数据结构 和 操作耦合性 问题 工作原理: 在 被访问的类 里面加一个 对外提供接待访问 阅读全文
posted @ 2021-12-17 16:32 在下右转,有何贵干 阅读(124) 评论(0) 推荐(0)
摘要:概念: 职责链模式 用于 分离不同职责,并且 动态组合相关职责 职责链模式(Chain of Responsibility Pattern), 又叫 责任链模式,为 请求 创建了 一个接收者对象的链 这种模式对 请求的发送者 和 接收者 进行解耦 通常 每个接收者 都包含 对另一个接收者的引用 如果 阅读全文
posted @ 2021-12-17 16:04 在下右转,有何贵干 阅读(76) 评论(0) 推荐(1)
摘要:概念; 解释器模式 定义一套 语言文法,并设计该 语言解释器,使用户能使用 特定文法 控制解释器行为 在 编译原理 中,一个 算术表达式 通过 词法分析器 形成 词法单元, 而后这些词法单元再通过 语法分析器 构建 语法分析树,最终形成一颗 抽象的语法分析树。 这里的 词法分析器 和 语法分析器 都 阅读全文
posted @ 2021-12-17 15:52 在下右转,有何贵干 阅读(114) 评论(0) 推荐(0)
摘要:概念: 备忘录模式(Memento Pattern) 在 不破坏封装性、不暴露内部情形 的前提下,捕获一个对象的 内部状态,并在 该对象之外 保存这个状态。 这样以后就可将该对象恢复到 原先保存的状态 程序 内部状态 使用 窄接口 传给 外部 进行 存储,从而 不暴露程序实现细节 备忘录模式 同时可 阅读全文
posted @ 2021-12-17 15:38 在下右转,有何贵干 阅读(80) 评论(0) 推荐(0)
摘要:概念: 状态模式用于 分离 状态 和 行为 主要用来解决对象在 多种状态转换 时,需要对外输出 不同的行为 的问题 状态 和 行为 是一一对应的,状态之间 可以 相互转换 当一个对象的 内在状态 改变时,允许 改变其行为 UML: Context: 环境角色,用于 维护 State 实例,这个实例定 阅读全文
posted @ 2021-12-17 14:30 在下右转,有何贵干 阅读(97) 评论(0) 推荐(0)
摘要:概念: 定义一系列算法,让这些算法在运行时可以互换,使得分离算法,符合开闭原则。 定义 算法族(策略组),分别封装起来,让它们之间可以 互相替换,此模式让 算法的变化 独立于 使用算法的Client 这算法体现了几个设计原则: (1)把 变化的代码 从 不变的代码 中分离出来; (2)针对 接口编程 阅读全文
posted @ 2021-12-17 10:47 在下右转,有何贵干 阅读(237) 评论(0) 推荐(0)
摘要:概念: 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),使用 继承 机制,把 通用步骤 和 通用方法 放到 父类 中,把 具体实现 延迟到 子类 中实现。使得实现符合 开闭原则 因为 Golang不提供 继承机制,需要使用 匿名组合 阅读全文
posted @ 2021-12-16 09:04 在下右转,有何贵干 阅读(251) 评论(0) 推荐(0)
摘要:概念: 迭代器模式(Iterator Pattern)是常用的设计模式,属于 行为型模式 当 客户端 要 遍历这些集合元素 的时候,就需要使用 多种遍历方式,而且还会 暴露元素的内部结构,可以考虑使用迭代器模式解决 迭代器模式,提供一种 遍历集合元素 的 统一接口,用 一致的方法 遍历集合元素,不需 阅读全文
posted @ 2021-12-15 09:13 在下右转,有何贵干 阅读(135) 评论(0) 推荐(0)
摘要:概念: 命令模式 本质是把 某个对象的方法调用 封装到对象中,方便 传递、存储、调用 在软件设计中,我们经常需要向 某些对象 发送请求,但是并 不知道请求的接收者 是谁,也 不知道被请求的操作 是哪个,只需在程序运行时指定 具体的请求接收者 即可 命令模式使得 请求发送者 与 请求接收者 消除彼此之 阅读全文
posted @ 2021-12-15 08:45 在下右转,有何贵干 阅读(79) 评论(0) 推荐(0)
摘要:概念: 观察者模式 用于 触发联动 一个对象的改变 会触发 其它观察者的相关动作,而 此对象 无需关心 联动对象 的 具体实现 对象之间 多对一依赖 的一种设计方案,被依赖的对象 为 Subject,依赖的对象 为 Observer,Subject 通知 Observer 变化 UML: Subje 阅读全文
posted @ 2021-12-14 08:59 在下右转,有何贵干 阅读(83) 评论(0) 推荐(0)
摘要:概念: 中介者模式(Mediator Pattern),用一个 中介对象 来封装 一系列的 对象交互。 中介者 使各个对象不需要 显式地相互引用,从而使其 耦合松散,而且可以 独立地改变 它们之间的 交互 中介者模式属于 行为型模式,使代码易于维护 比如 MVC 模式,C(Controller 控制 阅读全文
posted @ 2021-12-14 08:45 在下右转,有何贵干 阅读(74) 评论(0) 推荐(0)
摘要:概念: 桥接模式分离 抽象部分 和 实现部分, 将实现与抽象放在 两个不同的类层次 中,使两个层次可以 独立改变 Bridge 模式基于 类的最小设计原则,通过使用 封装、聚合 及 继承 等行为 让 不同的类 承担 不同的职责 它的 主要特点 是把 抽象(Abstraction) 与 行为实现(Im 阅读全文
posted @ 2021-12-13 09:06 在下右转,有何贵干 阅读(81) 评论(0) 推荐(0)
摘要:概念: 动态地将 新功能 附加到对象上 在 对象功能扩展 方面,它比 继承 更有弹性,装饰者模式也体现了 开闭原则(ocp) 装饰器模式 就像 打包一个快递 主体(被装饰者):比如:陶瓷、衣服 (Component) 包装(装饰器):比如:报纸填充、塑料泡沫、纸板、木板(Decorator) UML 阅读全文
posted @ 2021-12-13 08:44 在下右转,有何贵干 阅读(127) 评论(0) 推荐(0)
摘要:概念: 享元模式(Flyweight Pattern) 也叫 蝇量模式,运用 共享技术 有效地支持 大量细粒度的对象 常用于 系统底层开发,解决系统的 性能问题 像 数据库连接池,里面都是 创建好的连接对象,在这些连接对象中有我们 需要的 则 直接拿来用,避免重新创建;如果 没有我们需要的,则创建一 阅读全文
posted @ 2021-12-12 23:37 在下右转,有何贵干 阅读(234) 评论(0) 推荐(0)
摘要:概念: 组合模式(Composite Pattern),又叫 部分整体模式, 它创建了 对象组的树形结构,将 对象 组合成 树状结构 以表示 “整体-部分”的层次关系 这种类型的设计模式属于 结构型模式 组合模式使得用户对 单个对象 和 组合对象 的访问 具有一致性, 即:组合能让Client以 一 阅读全文
posted @ 2021-12-12 23:20 在下右转,有何贵干 阅读(148) 评论(0) 推荐(0)
摘要:概念: 为 一个对象 提供 一个替身,以 控制对这个对象的访问。 即:通过代理对象访问目标对象 好处是:可以在 目标对象实现的基础上,增强额外的功能操作,即 扩展目标对象 的功能 被代理的对象可以是 远程对象、创建开销大的对象 或 需要安全控制的对象 代理模式有不同的形式,主要有三种: 静态代理 动 阅读全文
posted @ 2021-12-12 23:00 在下右转,有何贵干 阅读(254) 评论(0) 推荐(0)
摘要:概念: 适配器模式(Adapter Pattern),又称 包装器(Wrapper) 将 某个类的接口 转换成 用户期望的另一个接口表示, 主的目的是 兼容性,让 原本因接口不匹配 不能一起工作的两个类可以 协同工作 适配器模式属于 结构型模式 主要分为三类: 类适配器模式 对象适配器模式 接口适配 阅读全文
posted @ 2021-12-12 22:47 在下右转,有何贵干 阅读(151) 评论(0) 推荐(0)
摘要:概念: 外观模式(Facade),也叫 “门面模式/过程模式”: 外观模式为 子系统 中的 一组接口 提供一个 一致的界面,此模式定义了一个 高层接口,这个接口使得这一子系统更加容易使用 外观模式 通过定义一个 一致的接口,用以屏蔽 内部子系统的细节,使得 调用端 只需跟这个接口发生调用,而 无需关 阅读全文
posted @ 2021-12-12 22:28 在下右转,有何贵干 阅读(70) 评论(0) 推荐(0)
摘要:原型模式: 概念: 用 原型实例 指定 创建对象的 种类,并且通过 拷贝这些原型,创建新的对象 原型模式是一种 创建型设计模式,允许 一个对象再创建另外一个可定制的对象,无需知道 如何创建的细节 工作原理是:通过将一个 原型对象 传给那个要发动创建的对象,这个 要发动创建的对象 通过 请求原型对象拷 阅读全文
posted @ 2021-12-12 21:56 在下右转,有何贵干 阅读(105) 评论(0) 推荐(0)
摘要:概念: 建造者模式(Builder Pattern) 又叫 生成器模式,是一种 对象构建模式 它可以将 复杂对象的建造过程 抽象出来,使这个 抽象过程 的 不同实现方法 可以构造出 不同表现(属性) 的对象 建造者模式 是 一步一步 创建一个复杂的对象, 它允许用户只通过 指定 复杂对象 的 类型 阅读全文
posted @ 2021-12-12 20:02 在下右转,有何贵干 阅读(159) 评论(0) 推荐(0)