1. 6.1 OOP设计模式historical

    1. 什么是设计模式 - 针对某类问题,可复用的解决方案 2. 为什么需要设计模式 3. 设计模式分类 主要分成三类,创建型、结构型、行为型 3.1. 创建型 关注对象的创建 3.2. 结构型 关注类与类之间的组织方式 3.3. 行为型 关注对象之间的交互 4. 参考 - 什么是设计模式? \- 知

  2. 6.2 单例模式historical

    一个类有且仅有一个实例对象 1. uml 2. Java 2.1. 饿汉式 - MySingleton - Client - 特点 - 会在加载类后一开始就被初始化,即使这个实例没有被使用到 2.2. 懒汉式:对整个方法加锁 - 特点 - 只有在真正用到的时候才会创建实例 - 每次调用都要加锁,但其

  3. 6.3 代理模式historical

    1. 定义 不改变原有代码的基础上为类或者函数增加新功能。 我不想做跟我业务无关的东西 2. uml 3. Java 3.1. 静态代理 代理类在编译时生成,需要程序员自己手写 3.1.1. client 3.1.2. 代理 3.1.3. 被代理 3.2. 动态代理 代理类在运行时生成, 利用的ja

  4. 6.4 模板方法historical

    1. 定义 适用于某个算法整体步骤固定,某些部分易变化.可以把变化的部分抽象出来.如servlet的doGet()和doPost()方法 2. uml 3. Java 3.1. client 3.2. 固定步骤 4. Golang 4.1. 第一种 4.1.1. client 4.1.2. 模板方法

  5. 6.5 工厂方法historical

    相对于简单工厂有多个工厂类。我们可以传递具体工厂实例而不是具体的产品到子类中,当需要的时候再调用工厂实例的创建产品方法(等于把创建实例对象的时机延迟到子类中) 1. uml 2. Java 2.1. client 2.2. 工厂 2.3. 产品 3. Golang 3.1. 工厂 3.2. 产品 3

  6. 6.6 状态模式historical

    1. 定义 根据状态的不同选用不同的处理逻辑,用if else太恶心 与策略模式的区别在于策略模式每种策略都是为了完成同一件事,而状态模式则是为了完成不同的事 2. UML 3. Java 3.1. client 3.2. context 3.3. 状态 4. Golang 4.1. 状态 4.2.

  7. 6.7 构建者模式historical

    用于构建一个对象,这个对象由许多小对象组成,且流程复杂.如各种Builder. builder负责构建,director负责组装 1. uml 2. Java 2.1. client 2.2. 产品 2.3. 构造者 2.4. 装配者 3. Golang 3.1. client 3.2. 产品 3.

  8. 6.8 策略模式historical

    1. 定义 完成同一件事有多种不同的方式,根据不同的type选择不同的算法,用if else太恶心 与状态模式的区别在于策略模式每种策略都是为了完成同一件事,而状态模式则是为了完成不同的事 2. uml 3. Java 3.1. client 3.2. context 3.3. 策略 4. Gola

  9. 6.9 观察者模式historical

    1. 定义 - 某个对象状态更新,需要通知给所有对象:广播 - 由两个角色:目标、观察者 - 观察者观察目标(监听目标) - 目标发生变化 - 目标主动通知观察者。 2. UML 3. Java 3.1. client 3.2. 被观察的对象 3.3. 观察者 4. Golang 4.1. 主题 4

  10. 6.10 装饰器模式historical

    1. 定义 不改变原有代码的基础上为类或者函数增加新功能。 我增强我自己的业务功能 2. uml 3. Java 3.1. client 3.2. 原有对象 3.3. 新增功能 4. Golang 4.1. 原有对象 4.2. 新增功能 4.3. client 5. 参考 - Java中“装饰模式”

  11. 6.11 责任链historical

    1. 定义 能处理同一类请求的对象连成一条链,servlet filter 2. uml 3. Java 3.1. client 3.2. 处理链 3.3. 请求 4. Golang 4.1. client 4.2. 处理链 4.3. 请求 5. 实例 5.1. 过滤器链 6. 参考 - niedb

  12. 6.12 适配器模式historical

    1. 定义 兼容旧系统的接口 2. uml 3. Java 3.1. client 3.2. 被适配 3.3. 转换器 4. Golang 4.1. 旧接口 4.2. 新接口 4.3. 转换器 4.4. client

  13. 6.12 原型模式historical

    new 一个对象需要很多数据准备,不如以某个对象为原型,clone一份,再修改value 1. uml 2. Java 2.1. client 2.2. sheep 3. Golang 3.1. Sheep 3.2. client 4. 实例

  14. 6.13 抽象工厂historical

    1. 是什么 有多种产品,每种产品对应一个工厂,同时这个产品需要多个小产品组合而成 抽象工厂模式用于生成产品族的工厂,所生成的产品是有关联的 2. Golang 2.1. 产品 2.2. 工厂 2.3. client

  15. 6.14 简单工厂historical

    把类的创建和使用分离开 1. Java 1.1. client 1.2. 产品 1.3. 工厂 2. Golang 2.1. 产品 2.2. 工厂 2.3. client 3. 实例 模板方法+简单工厂+策略模式 ! 20200913121959997 27705.png - pb.go - abstract template.go - content re

  16. 6.15 用过哪些设计模式historical

    1. 创建型 1.1. 单例模式 解释一下? 一个类有且仅有一个实例 手写一下单例模式的实现? 单例模式.md /notes/software-engineering/%E7%BC%96%E7%A8%8B%E8%8C%83%E5%BC%8F/OOP/OOP%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/%E5%88%9B%E5%BB

  17. 6.16 享元模式historical

    1. 定义 适用于大量相同或者相似对象的创建,如线程池 2. uml 3. 使用 3.1. client 3.2. 享元 3.3. 工厂

  18. 6.17 外观模式historical

    1. 定义 把复杂的流程封装到一个类中,比如各种util 2. uml 3. Java 3.1. client 3.2. 复杂流程 3.3. 外观 4. Golang 4.1. 复杂流程 4.2. 外观 4.3. client

  19. 6.18 桥接模式historical

    1. 定义 适用于多个维度变化的类层次 2. uml 3. Java 3.1. client 3.2. 维度1 3.3. 维度2 4. 参考 - 设计模式之结构型模式总结 \- Structural Patterns \- 简书

  20. 6.19 组合模式historical

    1. 定义 适用于整体与局部的树形结构,用于统一叶子节点和树节点的访问,并且可以用于应用某一操作到所有子节点。 2. uml 3. Java 3.1. client 3.2. 对象 4. Golang 4.1. 对象 4.2. client

  21. 6.20 中介者模式historical

    1. 定义 适用于多个对象之间相互交互耦合度太高.如mvc中的c 2. uml 3. Java 3.1. client 3.2. 中介者 3.3. 交互对象 4. Golang 4.1. 中介者 4.2. 交互对象 4.3. client

  22. 6.21 命令模式historical

    1. 定义 2. UML 3. Java 3.1. 命令 - Course - ICommand - CloseCommand - OpenCommand 3.2. 命令执行者 - Me 3.3. Client

  23. 6.22 备忘录模式historical

    1. 定义 保存一个对象的某个状态,以便在适当的时候恢复 CTRL+Z的撤销逻辑可以用到这个 2. UML 3. Java 3.1. 备忘的对象 3.2. 备忘录 - ArticleMemento - ArticleMementoManager 3.3. client

  24. 6.23 解释器模式historical

    1. 定义 2. UML

  25. 6.24 访问者模式historical

    1. 定义 将数据结构和操作分离,操作和数据结构各自在不同的类中 2. UML 3. Java 3.1. 数据结构 - Course - CodingCourse - FreeCourse 3.2. 操作 - IVisitor - Visitor 3.3. client

  26. 6.25 迭代器historical

    1. 定义 提供一种遍历聚合对象的方式,JDK已经封装 2. Java 2.1. client 2.2. 迭代器 3. Golang 3.1. 迭代器 3.2. client