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

go设计模式

刘:https://www.bilibili.com/video/BV1kG411g7h4
https://www.bilibili.com/video/BV1jyreYKE8z

1. 单例模式

2. 简单工厂模式

  1. 代码逻辑:
    • 原始:业务逻辑层 —> 基础类模块
    • 工厂:业务逻辑层 —> 工厂模块 —> 基础类模块
    • 业务层和基础类解耦
  2. 思路:业务层不再直接创建对象,而是调用工厂创建对象,创建对象的细节也在工厂中实现,减轻业务层的压力。
  3. 一个工厂创建的所有对象都有共同的父类,工厂的返回值就是父类指针,父类指针指向子类对象。
  4. 优缺点:适用于创建对象较少的情况,违反了开闭原则。
  5. 开闭原则:应用程序实体(类、模块、方法等)应该对扩展开放但对修改关闭。 换句话说,需要在不更改现有代码的情况下向应用程序添加新功能。

3. 工厂方法模式

  1. 简单工厂模式+开闭原则=工厂方法模式。
  2. 思路:不再只有一个工厂。现在有一个抽象工厂,要创建某个对象就实例化一个对应的具体工厂来创建对象。
  3. 优缺点:遵守了开闭原则,每新增一个产品就要新增一个工厂,类的数量太多。

4. 抽象工厂模式

  1. 用的不多,作用是减少工厂类的数量。
  2. 思路:不再是一个产品一个工厂,而是一个产品族是一个工厂。例如,一个中国工厂,可以生产中国苹果、中国香蕉和中国梨子,如果你想要日本苹果,那还要创建日本工厂。一个产品等级结构是一类产品,例如苹果。https://www.bilibili.com/video/BV1Je4y1b7j9
  3. 新增产品族(工厂)很简单,符合开闭原则,但新增产品等级结构很麻烦,不符合开闭原则。

相关文章:

go设计模式

刘:https://www.bilibili.com/video/BV1kG411g7h4 https://www.bilibili.com/video/BV1jyreYKE8z 1. 单例模式 2. 简单工厂模式 代码逻辑: 原始:业务逻辑层 —> 基础类模块工厂:业务逻辑层 —> 工厂模块 —> 基础类模块…...

FREERTOS的三种调度方式

一、调度器的调度方式 调度器的调度方式解释针对的对象抢占式调度1.高优先级的抢占低优先级的任务 2.高优先级的任务不停止,低优先级的任务不能执行 3.被强占的任务会进入就绪态优先级不同的任务时间片调度1.同等优先级任务轮流享用CPU时间 2.没有用完的时间片&…...

前端依赖nrm镜像管理工具

npm 默认镜像 :https://registry.npmjs.org/ 1、安装 nrm npm install nrm --global2、查看镜像源列表 nrm ls3、测试当前环境下,哪个镜像源速度最快。 nrm test4、 切换镜像源 npm config get registry # 查看当前镜像源 nrm use taobao # 等价于 npm…...

redis repl_backlog_first_byte_offset 这个字段的作用

repl_backlog_first_byte_offset 是 Redis 复制积压缓冲区(Replication Backlog)中的一个关键字段,其作用是 标识积压缓冲区中第一个字节对应的全局复制偏移量。 通俗解释 当主从节点断开重连时,Redis 需要通过复制积压缓冲区&am…...

JavaScript基础(BOM对象、DOM节点、表单)

BOM对象 浏览器介绍 BOM:浏览器对象模型 IEChromeSafariFireFox 三方 QQ浏览器360浏览器 window对象 window代表浏览器窗口 window.innerHeight 734 window.innerWidth 71 window.outerHeight 823 window.outerWidth 782 Navigator对象(不常用&am…...

Java Junit框架

JUnit 是一个广泛使用的 Java 单元测试框架,用于编写和运行可重复的测试。它是 xUnit 家族的一部分,专门为 Java 语言设计。JUnit 的主要目标是帮助开发者编写可维护的测试代码,确保代码的正确性和稳定性。 JUnit 的主要特点 注解驱动&…...

23种设计模式之《备忘录模式(Memento)》在c#中的应用及理解

程序设计中的主要设计模式通常分为三大类,共23种: 1. 创建型模式(Creational Patterns) 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。 工厂方法模式&#xff0…...

Seaborn知识总结

1、简介 (1)高级接口:Seaborn 提供了一组高级函数和方法,可以使得创建常见的统计图表变得简单,例如散点图、线性回归图、箱线图、直方图、核密度估计图、热图等等。无需像 Matplotlib 一样写大量的代码; …...

flowable中用户相关api

springboot引入flowable&#xff1a;高版本mysql报错 <!-- https://mvnrepository.com/artifact/org.flowable/flowable-spring-boot-starter --><dependency><groupId>org.flowable</groupId><artifactId>flowable-spring-boot-starter</art…...

java后端开发day23--面向对象进阶(四)--抽象类、接口、内部类

&#xff08;以下内容全部来自上述课程&#xff09; 1.抽象类 父类定义抽象方法后&#xff0c;子类的方法就必须重写&#xff0c;抽象方法在的类就是抽象类。 1.定义 抽象方法 将共性的行为&#xff08;方法&#xff09;抽取到父类之后。由于每一个子类执行的内容是不一样…...

安装 Open WebUI

2025.03.01 早上 我已经安装了ollama 和deeseek模型 &#xff08;本地部署流水账之ollama安装Deepseek安装-CSDN博客&#xff09;&#xff0c;然后需要个与模型沟通的工具&#xff08;这么说不知道对不对&#xff09;。 刚开始用的chatbox&#xff0c;安装很方便&#xff0c;…...

Llama 2中的Margin Loss:为何更高的Margin导致更大的Loss和梯度?

Llama 2中的Margin Loss&#xff1a;为何更高的Margin导致更大的Loss和梯度&#xff1f; 在《Llama 2: Open Foundation and Fine-Tuned Chat Models》论文中&#xff0c;作者在强化学习与人类反馈&#xff08;RLHF&#xff09;的Reward Model训练中引入了Margin Loss的概念&a…...

【后端】Docker一本通

长期更新补充&#xff0c;建议关注收藏点赞 目录 Docker概述安装部署Docker基本操作使用docker部署tomcat使用docker部署mysql Docker概述 docker是⼀个应⽤级隔离的虚拟化技术docker三大核心概念 镜像&#xff1a;是具有源的所有特征的⼀个标记⽂件 仓库&#xff1a;存放镜像…...

工程化与框架系列(13)--虚拟DOM实现

虚拟DOM实现 &#x1f333; 虚拟DOM&#xff08;Virtual DOM&#xff09;是现代前端框架的核心技术之一&#xff0c;它通过在内存中维护UI的虚拟表示来提高渲染性能。本文将深入探讨虚拟DOM的实现原理和关键技术。 虚拟DOM概述 &#x1f31f; &#x1f4a1; 小知识&#xff1…...

数据结构之各类排序算法代码及其详解

1. 排序的概念 排序是一种常见的算法概念&#xff0c;用于将一组数据按照特定的顺序进行排列。排序算法的目的是将一组数据按照递增或递减的顺序重新排列。常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。排序算法的选择通常取决于数据规模、数据分布…...

【洛谷贪心算法】P1090合并果子

为了使消耗的体力最小&#xff0c;每次都应该选择当前重量最小的两堆果子进行合并。可以使用优先队列&#xff08;小根堆&#xff09;来实现这个过程&#xff0c;优先队列可以自动维护元素的顺序&#xff0c;每次取出堆顶的两个元素&#xff08;即最小的两个元素&#xff09;进…...

【告别双日期面板!一招实现el-date-picker智能联动日期选择】

告别双日期面板&#xff01;一招实现el-date-picker智能联动日期选择 1.需求背景2.DateTimePicker 现状图3.日期选择器实现代码4.日期选择器实现效果图5.日期时间选择器实现代码6.日期时间选择器实现效果图 1.需求背景 在用户使用时间查询时&#xff0c;我们经常需要按月份筛选…...

现今大语言模型性能(准确率)比较

现今大语言模型性能(准确率)比较 表头信息:表的标题为“大语言模型性能比较结果”(英文:Table 1: Large Language Model Performance Comparison Results),表明该表是用于对比不同大语言模型的性能。列信息: 模型:列出参与比较的不同大语言模型名称,包括LLAMA3(70B)…...

程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图(水文,勿三)

大家好啊&#xff0c;我是小象٩(๑ω๑)۶ 我的博客&#xff1a;Xiao Xiangζั͡ޓއއ 很高兴见到大家&#xff0c;希望能够和大家一起交流学习&#xff0c;共同进步。 这一节我们来学习指针的相关知识&#xff0c;学习内存和地址&#xff0c;指针变量和地址&#xff0c;包…...

在 UniApp 中实现中间凸起 TabBar 的完整指南

如何在 UniApp 中设置中间 TabBar 凸起效果 在移动应用开发中&#xff0c;TabBar 是常见的导航组件&#xff0c;而中间凸起的 TabBar 按钮则是一种流行的设计风格&#xff0c;常用于突出重要功能&#xff08;如发布、拍照等&#xff09;。UniApp 提供了 midButton 属性&#x…...

Vision Mamba边缘部署:从算法瓶颈到专用硬件加速器设计

1. 项目概述&#xff1a;为什么我们需要为Vision Mamba定制硬件&#xff1f;在边缘设备上部署视觉大模型&#xff0c;听起来就像让一台家用轿车去跑F1赛道——动力、空间、散热&#xff0c;处处都是瓶颈。传统的Transformer架构&#xff0c;比如ViT&#xff0c;虽然性能强悍&am…...

使用C#代码重新排列PDF页面的操作代码

引言对于页面顺序混乱的 PDF 文档&#xff0c;重新排列页面可以避免读者产生困惑&#xff0c;同时也能让文档结构更加清晰有序。本文将演示如何使用 Spire.PDF for .NET 以编程方式重新排列现有 PDF 文档中的页面。安装 Spire.PDF for .NET首先&#xff0c;需要将 Spire.PDF fo…...

从PSCI到ATF:手把手带你拆解Linux ARM64平台CPU休眠唤醒的完整调用链

ARM64平台CPU休眠唤醒全链路解析&#xff1a;从内核到固件的技术实现在当今移动计算和嵌入式系统领域&#xff0c;电源管理已成为衡量系统设计优劣的关键指标之一。作为系统级电源管理的核心组成部分&#xff0c;CPU的休眠唤醒机制直接影响着设备的续航能力和响应速度。本文将深…...

UE5.3与VS2022编译配置深度优化指南

1. 为什么UE5项目在VS2022里编译慢、报错多、改个头文件就全量重编&#xff1f;我第一次把团队刚升级的UE5.3项目拖进Visual Studio 2022时&#xff0c;整整等了17分42秒才完成首次编译——不是链接&#xff0c;是编译。中间还弹出6个“LNK2019未解析外部符号”、3个“C2039‘G…...

差分隐私矩阵机制与FFT优化:保护多轮迭代计算的高效方法

1. 差分隐私矩阵分解&#xff1a;从理论到工程实践在联邦学习、推荐系统这些需要频繁进行多轮迭代计算的场景里&#xff0c;我们常常面临一个核心矛盾&#xff1a;既要利用全体参与者的数据来训练一个高质量的全局模型&#xff0c;又要确保任何单个参与者的敏感信息不会在训练过…...

别再只盯着MSE了!用Python实战对比5大回归评估指标(附避坑指南)

别再只盯着MSE了&#xff01;用Python实战对比5大回归评估指标&#xff08;附避坑指南&#xff09;当你的回归模型在测试集上表现不佳时&#xff0c;第一个浮现在脑海的问题往往是&#xff1a;"该用哪个指标来评估才最合理&#xff1f;"这个问题远比想象中复杂——我…...

黑群晖硬盘满了别慌!手把手教你用SSH命令行扩容,Linux系统也通用

黑群晖存储扩容实战&#xff1a;SSH命令行全流程指南与Linux通用技巧当你发现黑群晖的存储空间亮起红灯时&#xff0c;那种焦虑感我深有体会。去年我的媒体服务器突然报出"存储空间不足"警告&#xff0c;当时存放的4TB家庭影像资料和重要工作备份几乎占满了整个磁盘。…...

保姆级教程:用Python和Keras复现4D-CRNN脑电情绪识别模型(附DEAP/SEED数据集处理全流程)

从脑电信号到情绪识别&#xff1a;4D-CRNN模型实战全解析在脑机接口与情感计算领域&#xff0c;脑电信号&#xff08;EEG&#xff09;情绪识别一直是个充满挑战又极具应用价值的方向。传统方法往往难以同时捕捉EEG信号的时空频多维特征&#xff0c;而4D-CRNN模型通过创新的四维…...

数据标注中的权力博弈与主观性:从规则制定到模型偏见的全链路解析

1. 项目概述&#xff1a;当数据标注不再是“客观”的技术活“数据标注”&#xff0c;在很多人眼里&#xff0c;可能就是一个坐在电脑前&#xff0c;对着图片画框、打标签的“体力活”或“技术活”。它听起来中立、客观&#xff0c;是人工智能模型训练前一道标准化的工序。然而&…...

书匠策AI降重降AIGC实测:论文圈的“消音器“到底有多猛?官网www.shujiangce.com深度拆解

各位还在论文泥潭里挣扎的宝子们&#xff0c;今天这期内容可能会让你少熬三个通宵。 我最近收到最多的私信就是&#xff1a;"博主&#xff0c;我查重42%&#xff0c;AIGC检测28%&#xff0c;导师说再改不过就延毕&#xff0c;怎么办&#xff1f;"说实话&#xff0c;…...