22种常用设计模式示例代码
文章目录
- 创建型模式
- 结构型模式
- 行为模式
仓库地址https://github.com/Xiamu-ssr/DesignPatternsPractice
参考教程 refactoringguru设计模式-目录
创建型模式
软件包 | 复杂度 | 流行度 | |
---|---|---|---|
工厂方法 | factorymethod | ❄️ | ⭐️⭐️⭐️ |
抽象工厂 | abstractfactory | ❄️❄️ | ⭐️⭐️⭐️ |
生成器 | builder | ❄️❄️ | ⭐️⭐️⭐️ |
原型 | prototype | ❄️ | ⭐️⭐️ |
单例 | singleton | ❄️ | ⭐️⭐️⭐️ |
结构型模式
软件包 | 复杂度 | 流行度 | |
---|---|---|---|
适配器 | adapter | ❄️ | ⭐️⭐️⭐️ |
桥接 | bridge | ❄️❄️❄️ | ⭐️ |
组合 | composite | ❄️❄️ | ⭐️⭐️ |
装饰 | decorator | ❄️❄️ | ⭐️⭐️ |
外观 | facade | ❄️ | ⭐️⭐️ |
享元 | flyweight | ❄️❄️❄️ | ⭐️ |
代理 | proxy | ❄️❄️ | ⭐️ |
行为模式
软件包 | 复杂度 | 流行度 | |
---|---|---|---|
责任链 | chainofresponsibility | ❄️❄️ | ⭐️ |
命令 | command | ❄️ | ⭐️⭐️⭐️ |
迭代器 | iterator | ❄️❄️ | ⭐️⭐️⭐️ |
中介者 | mediator | ❄️❄️ | ⭐️⭐️ |
备忘录 | memento | ❄️❄️❄️ | ⭐️ |
观察者 | observer | ❄️❄️ | ⭐️⭐️⭐️ |
状态 | state | ❄️ | ⭐️⭐️ |
策略 | strategy | ❄️ | ⭐️⭐️⭐️ |
模版方法 | templatemethod | ❄️ | ⭐️⭐️ |
访问者 | visitor | ❄️❄️❄️ | ⭐️ |
相关文章:
![](https://img-blog.csdnimg.cn/direct/86358c2e9e9a4527a0c83176612d0f0d.png#pic_center)
22种常用设计模式示例代码
文章目录 创建型模式结构型模式行为模式 仓库地址https://github.com/Xiamu-ssr/DesignPatternsPractice 参考教程 refactoringguru设计模式-目录 创建型模式 软件包复杂度流行度工厂方法factorymethod❄️⭐️⭐️⭐️抽象工厂abstractfactory❄️❄️⭐️⭐️⭐️生成器bui…...
![](https://www.ngui.cc/images/no-images.jpg)
Java面试题:对比ArrayList和LinkedList的内部实现,以及它们在不同场景下的适用性
ArrayList和LinkedList是Java中常用的两个List实现,它们在内部实现和适用场景上有很大差异。下面是详细的对比分析: 内部实现 ArrayList 数据结构:内部使用动态数组(即一个可变长的数组)实现。存储方式:…...
![](https://img-blog.csdnimg.cn/direct/a6e2790b02974d54a13cde83d8b2a92d.png)
ping: www.baidu.com: 未知的名称或服务(IP号不匹配)
我用的是VMware上的Red Hat Enterprise Linux 9,出现了能联网但ping不通外网的情况。 问题描述:设置中显示正常连接,而且虚拟机右上角有联网的图标,但不能通外网。 按照网上教程修改了/etc/resolv.conf和/etc/sysconfig/network-…...
![](https://www.ngui.cc/images/no-images.jpg)
谷神前端组件增强:子列表
谷神Ag-Grid导出Excel // 谷神Ag-Grid导出Excel let allDiscolumns detailTable.getAllDisColumns() let columnColIds columns.map(column > column.colId) let columnKeys columnColIds.filter(item > ![select, "_OPT_FIELD_"].includes(item)) detailT…...
![](https://www.ngui.cc/images/no-images.jpg)
测试cudaStream队列的深度
测试cudaStream队列的深度 一.代码二.编译运行[得出队列深度为512] 以下代码片段用于测试cudaStream队列的深度 方法: 主线程一直发任务,启一个线程cudaEventQuery查询已完成的任务,二个计数器的值相减 一.代码 #include <iostream> #include <thread> #include …...
![](https://img-blog.csdnimg.cn/direct/96ded3aab3934973a136d55ddffa64de.png)
海康威视 isecure center 综合安防管理平台任意文件上传漏洞
文章目录 前言声明一、漏洞描述二、影响版本三、漏洞复现四、修复方案 前言 海康威视是以视频为核心的智能物联网解决方案和大数据服务提供商,业务聚焦于综合安防、大数据服务和智慧业务。 海康威视其产品包括摄像机、多屏控制器、交通产品、传输产品、存储产品、门禁产品、消…...
![](https://img-blog.csdnimg.cn/direct/e27fd83e9de24d52adc6d7f3e18b6b8b.png)
shadertoy-安装和使用
一、安装vscode 安装vscode流程 二、安装插件 1.安装glsl编辑插件 2.安装shader toy插件 三、创建glsl文件 test.glsl文件 float Grid(float size, vec2 fragCoord) {vec2 r fragCoord / size;vec2 grid abs(fract(r - 0.5) - 0.5) / fwidth(r);float line min(grid…...
![](https://img-blog.csdnimg.cn/direct/840a3063432544eeb4796bef8dfe48a8.png)
matlab线性多部法求常微分方程数值解
用Adamas内差二步方法,内差三步方法,外差二步方法,外差三步方法这四种方法计算。 中k为1和2. k为2和3 代码 function chap1_adams_methodu0 1; T 2; h 0.1; N T/h; t 0:h:T; solu exact1(t);f f1; u_inter_2s adams_inter_2steps(…...
![](https://img-blog.csdnimg.cn/direct/51d0251a1d3f4ee388638b70e1e09743.png)
前端页面实现【矩阵表格与列表】
实现页面: 1.动态表绘制(可用于矩阵构建) <template><div><h4><b>基于层次分析法的权重计算</b></h4><table table-layout"fixed"><thead><tr><th v-for"(_, colI…...
![](https://www.ngui.cc/images/no-images.jpg)
GPT4v和Gemini-Pro调用对比
要调用 GPT-4 Vision (GPT-4V) 和 Gemini-Pro,以下是详细的步骤分析,包括调用流程、API 使用方法和两者之间的区别,以及效果对比和示例。 GPT-4 Vision (GPT-4V) 调用步骤 GPT-4 Vision 主要通过 OpenAI 的 API 进行调用,用于处…...
![](https://img-blog.csdnimg.cn/direct/a51d428db75b41edb79343dc7363767e.png)
破布叶(Microcos paniculata)单倍型染色体级别基因组-文献精读22
Haplotype-resolved chromosomal-level genome assembly of Buzhaye (Microcos paniculata) 破布叶、布渣叶(Microcos paniculata)单倍型解析染色体级别基因组组装 摘要 布渣叶(Microcos paniculata)是一种传统上用作民间药物和…...
![](https://img-blog.csdnimg.cn/direct/e89761a6d01f40128ec58eebb71b331b.png)
浅谈RC4
一、什么叫RC4?优点和缺点 RC4是对称密码(加密解密使用同一个密钥)算法中的流密码(一个字节一个字节的进行加密)加密算法。 优点:简单、灵活、作用范围广,速度快 缺点:安全性能较差&…...
![](https://www.ngui.cc/images/no-images.jpg)
uniapp微信小程序开发物料
开发工具 HBuilder: HBuilderX-高效极客技巧 vscode 1、在vscode中新建一个项目npx degit dcloudio/uni-preset-vue#vite-ts 项目名称 2、在HBuilder中可以可视化进行新建项目 路由 在app.json文件中配置pages路由路径 路由跳转方法 uni.navigateTo(OBJECT)…...
![](https://img-blog.csdnimg.cn/img_convert/13ef17b7ca7d07ba69c0064306587575.png)
大数据工程师如何做到数据可视化?
好的数据可视化作品都是通过不断的数据对比分析实战出来的。 今天给大家带来一篇大数据工程师干货,从多角度解析做数据可视化的重要性,并解读一些适用的应用场景。大数据工程师们刷到这篇文章时一定要进来看看,满满的干货。 目录 1. 什么是数…...
![](https://www.ngui.cc/images/no-images.jpg)
Java 序列化与反序列化
Java 序列化是一种将对象的状态转换为字节流的机制,以便可以将该对象的状态保存到文件、数据库或通过网络传输。在反序列化过程中,这些字节流可以被重新转换为对象。序列化主要用于以下几种情况: 持久化存储:将对象的状态保存到文…...
![](https://www.ngui.cc/images/no-images.jpg)
自定义防抖注解
问题场景 在开发中由于可能存在的网络波动问题导致用户重复提交,所以自定义一个防抖注解。设计思路:自定义注解加在接口的方法上,注解中设置了SPEL表达式,可以通过SPEL表达式从接口参数中提取Redis的Key,以这个Key作为…...
![](https://img-blog.csdnimg.cn/img_convert/92207a2e8c1540860af89ee086a4b24b.png)
【尚庭公寓SpringBoot + Vue 项目实战】登录管理(十八)
【尚庭公寓SpringBoot Vue 项目实战】登录管理(十八) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】登录管理(十八)1、登录业务介绍2、接口开发2.1、获取图形验证码2.2、登录接口2.3、获取登录用户个人信息 1、登录业务介绍 登…...
![](https://www.ngui.cc/images/no-images.jpg)
【html】用html+css做地表最强王者荣耀辅助工具
源码: <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title><style>* {margin: 0;padding: 0;}body{background-color: blue;}.con {width: 300px;height: 500px;background-color: rgba(230,…...
![](https://img-blog.csdnimg.cn/direct/ea3e2b6b5e864c609117a7c49be8ef17.png#pic_center)
TF-IDF、BM25传统算法总结
1. TF-IDF算法 F-IDF(词频-逆文档频率)是一种用于衡量文本中词语重要性的方法,特别适用于信息检索和文本挖掘任务。下面会拆分为两部分深入讲解TF-IDF的计算过程,以便更好地理解。 TF-IDF的计算过程可以分为两个主要部分…...
![](https://img-blog.csdnimg.cn/direct/e657f557b35e4efdbc870bc611dbfa7a.png)
项目五 OpenStack镜像管理与制作
任务一 理解OpenStack镜像服务 1.1 •什么是镜像 • 镜像通常 是指一系列文件或一个磁盘驱动器的精确副本 。 • 虚拟机 所使用的虚拟磁盘, 实际上是 一种特殊格式的镜像文件 。 • 云 环境下尤其需要 镜像。 • 镜像 就是一个模板,类似于 VMware 的虚拟…...
![](https://img-blog.csdnimg.cn/img_convert/be999417b97fe80c46543d50c509b73e.png)
LabVIEW回热系统热经济性分析及故障诊断
开发了一种利用LabVIEW软件的电厂回热系统热经济性分析和故障诊断系统。该系统针对火电厂回热加热器进行优化,通过实时数据监控与分析,有效提高机组的经济性和安全性,同时降低能耗和维护成本。系统的实施大幅提升了火电厂运行的效率和可靠性&…...
![](https://www.ngui.cc/images/no-images.jpg)
设计模式-迭代器模式
目录 一:基本介绍 二:原理说明 三:案例说明 四:优点 五:缺点 一:基本介绍 1)属于行为模式 2)如果我们的集合元素是用不同的方式实现的,有数组,还有java的集合类,或者还有其他方式,当客户 端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以…...
![](https://img-blog.csdnimg.cn/direct/f3c49dad041941e99b6d8a6de390c400.jpeg)
UV胶带和UV胶水的应用场景有哪些不同吗?
UV胶带和UV胶水的应用场景有哪些不同吗? UV胶带和UV胶水的应用场景确实存在不同之处,以下是详细的比较和归纳: 一:按使用场景来看: UV胶带的应用场景: 包装行业:UV胶带在包装行业中常用于食品包装、药…...
![](https://img-blog.csdnimg.cn/img_convert/30ff23bde6f4f9b01b17e942162c0436.jpeg)
监控员工上网软件有哪些|4款好用的员工上网行为管理软件推荐
在当今数字化办公环境中,确保网络安全、提升工作效率、以及规范员工上网行为成为企业管理的重要组成部分。 为此,一套高效的员工上网行为管理软件显得尤为关键。 本文将为您推荐五款市场上广受好评的员工上网行为管理软件,帮助您有效监控与管…...
![](https://img-blog.csdnimg.cn/direct/4899ad6a01534bd4a7a201f25d10112c.gif#pic_center)
【IPython的使用技巧】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
![](https://img-blog.csdnimg.cn/direct/b5d6d27d97044b9b879b3e34a8118984.png)
最新AI智能聊天对话问答系统源码(详细图文搭建部署教程)+AI绘画系统(Midjourney),DALL-E3文生图,TTS语音识别输入,文档分析
一、文章前言 随着人工智能技术的持续进步,AI绘画已经发展成为一个日益成熟的领域。越来越多的人开始尝试使用AI绘画软件来创作艺术作品。尽管这些AI绘画软件对绘画领域产生了显著影响,但它们并不会完全取代画师。与传统手绘不同,AI绘画可以…...
![](https://img-blog.csdnimg.cn/direct/f5aefebcd0a842978a261d735552822c.png)
项目四 OpenStack身份管理
任务一 理解身份服务 1.1 •Keystone的基本概念 • 认证 ( Authentication ) —— 确认 用户身份的过程,又称身份验证 。 • 凭证 ( Credentials ) —— 又 称凭据,是用于确认用户身份的数据 。 • 令牌 …...
![](https://img-blog.csdnimg.cn/direct/68852aec44dd4cc0b48eab7eda0028c2.png)
【后端】websocket学习笔记
文章目录 1. 消息推送常见方式1.1 轮询 VS 长轮询1.2 SSE(server-sent event)服务器发送事件 2. websocket介绍2.1 介绍2.2 原理2.3 websoket API2.3.1 客户端【浏览器】API2.3.2 服务端API 3. 代码实现3.1 流程分析3.2 pom依赖3.3 配置类3.4 消息格式3.5 消息类 4.…...
![](https://img-blog.csdnimg.cn/img_convert/c3c0aadfcd70e1525619dc61eaacbfd7.png)
DataWhale - 吃瓜教程学习笔记(一)
学习视频:第1章-绪论_哔哩哔哩_bilibili 西瓜书对应章节: 第一章 & 第二章 文章目录 机器学习三观What:什么是机器学习?Why: 为什么要学机器学习?1. 机器学习理论研究2. 机器学习系统开发3. 机器学习算法迁移 &…...
![](https://img-blog.csdnimg.cn/direct/5ef90d73517c4050ad10405fd93cab0d.png)
Attention Is All You Need论文地址
论文地址 点击即可...
![](https://img-blog.csdnimg.cn/img_convert/225287cb41318e657210166cfd1236f1.png)
清远网站制作/网站搭建外贸
真的很想吐槽一下李航老师后面的附录,看的我是云头雾里,上网查了很多资料才搞懂。 这篇文章主要讲解牛顿法和拟牛顿法一些算法思路上的由来,作为附录的补充,具体算法细节可以参考那本书1.牛顿法首先你需要知道的是牛顿法本身是一个…...
![](https://www.oschina.net/img/hot3.png)
利用百度图片做网站外链/深圳竞价托管公司
2019独角兽企业重金招聘Python工程师标准>>> 查看版本信息: uanme -a 查看开机机系统信息: dmesg 包括rc.conf和rc.local里程序运行信息的dmesg: dmesg -a 查看某种程序的所有进程,这里以python为例: ps -ax | grep python 查看cpu,硬盘控制器以及网卡的情况 vmstat…...
![](/images/no-images.jpg)
最基本最重要的网站推广工具是/营销培训方案
小编典典(就我而言,我使用的是Java 8)添加到命令行: -XX:NativeMemoryTrackingsummary然后启动 jcmd VM.native_memory您应该得到这样的内容:Total: reserved3863657KB, committed1679977KB- Java Heap (reserved1843200KB, committed824320K…...
![](https://img-blog.csdnimg.cn/img_convert/87a68a508007e8dd4d0ba4f80b9e3a0f.png)
wordpress 登录美化/网络营销怎么做
随便挑了一张看起来比较高端的图片有些朋友可能玩过按键精灵,一个用来操作键盘鼠标完成一些自动化工作的软件。其实如果你学了Python的话,完全用不着按键精灵这种东西了。因为广泛的Python类库里,就有PyAutoGUI这样可以变成控制键盘鼠标的类库…...
![](http://pic.w-blog.cn/6A1EEA85-AB15-459B-A22D-FE741DAC03E1.png)
南昌网站建设方案详细版/哈尔滨seo公司
2019独角兽企业重金招聘Python工程师标准>>> 日常的大数据使用中经常是在服务器命名行中进行操作,可视化功能仅仅依靠着各个组件自带的网页进行,那么有没有一个可以结合大家能在一个网页上的管理工具呢?答案是肯定的,今天就和大家一起来探索大数据管理工具HUE的庐山…...
网站建设与维护 电子版/产品运营方案
转自:blog.leanote.com/post/afanti.denggmail.com/b5f4f526490b ROI Align 是在Mask-RCNN这篇论文里提出的一种区域特征聚集方式, 很好地解决了ROI Pooling操作中两次量化造成的区域不匹配(mis-alignment)的问题。实验显示,在检测测任务中将 ROI Poolin…...