当前位置: 首页 > news >正文

设计模式学习笔记

说了一万遍!学习要做笔记!

时间一长,就会忘了,后面再来学,又要从头学起

关键是重难点!!!当初学的时候就是因为攻克难点、寻找重点花费时间
不做笔记每次复习都要浪费时间在重难点上

每一次放弃的对自己的约定,都会蚕食你积攒下来的意志力!!!

设计模式学习 目标:
是什么
伪代码怎么实现(记住一个例子)
优缺点—推理 某个场景下 适合 什么设计模式
适用场景—一些常见的场景,直接套用

传送门—**模式的好处[狗头]

1.简单工厂

就一个单独的工厂

2.工厂

和简单工厂的区别就是
会出现多个工厂

3.抽象工厂

为了解决 多个工厂生产出来的产品 可能会出现 不适配的问题

建造一些大厂。对于一座大厂,它将生产产品线上所有产品,并且这些产品是适配的

客户直接 选择选择一座大厂,由这座大厂生产所有产品

4.单例模式

饿汉 (迫切) (说白了一个全局变量)

static EagerSingleton* instance = new EagerSingleton();

懒汉 (事到临头再new)

static LazySingleton* getInstance() {if (instance == null) {instance = new LazySingleton();}return instance;

5.建造者模式

强调按步骤进行

Food food = new FoodBuilder().a().b().c().build();

6.原型模式

关键在 有个克隆接口 ,克隆自身得到一个新对象

门面模式(外观模式)

给出简单的接口,用来隐藏系统的复杂性

责任链模式
请求处理的顺序性
责任传递机制

桥梁模式(说白了就是不同维度 的 各个 值 都可以 相互组合

代码示例中是一个 n种颜色的画笔和m种形状,一个个组合实现的话得有n*m个类

桥梁模式将 画笔和形状的关系进行抽象,
在使用时就 自由搭配画笔和形状 (给具体形状类传一个具体画笔) ,这样就只需要实现n+m 个类

分离抽象和实现

组合模式

说的太好了 可以用来描述 树形结构

就是每一个节点,既可以是一个 单纯的节点 ,也可以是 一棵树

比较经典的 文件夹

装饰模式

示例代码中使用的是 饮料(红茶、绿茶) 和 小料(加芒果、加柠檬,—或者加珍珠哦)

被装饰后的饮料依然还是饮料(即 装饰者的父类 也要 继承 饮料),但是构造时一定要传入一个饮料(不论是装饰过的还是原始的)(只有小料的话就不叫饮料了)

享元模式(复用已经生成的对象)

通过复用(或者说 共享)对象来减少内存消耗
复用对象最简单的方式是,用一个 HashMap 来存放每次新生成的对象。每次需要一个对象的时候,先到 HashMap 中看看有没有,如果没有,再生成新的对象,然后将这个对象放入 HashMap 中


http://www.mrgr.cn/news/92144.html

相关文章:

  • 【论文解读】《Training Large Language Models to Reason in a Continuous Latent Space》
  • C/C++后端开发面经
  • Java八股文(下)
  • docker容器网络配置及常用操作
  • 骁勇善战的量化利器:多因子模型【量化理论】
  • Redission可重试、超时续约的实现原理(源码分析)
  • 安全见闻5
  • 【废物研究生零基础刷算法】DFS与递归(一)典型题型
  • 【MySQL篇】持久化和非持久化统计信息的深度剖析(含analyze命令和mysqlcheck工具两种收集方式)
  • Java 使用websocket
  • ClickHouse系列之ClickHouse安装
  • Linux上使用dify构建RAG
  • 第9章:LangChain结构化输出-示例4(基于大模型从自然语言中提取POJO)
  • vue:vite 代理服务器 proxy 配置
  • Go入门之struct
  • nodejs:vue 3 + vite 作为前端,将 html 填入<iframe>,在线查询英汉词典
  • Python游戏编程之赛车游戏6-2
  • 一文详解U盘启动UEFI/Legacy方式以及GPT/MBR关系
  • k8s集群部署
  • Linux常见问题