我自己总结记忆的23种设计模式

news2025/1/10 21:52:39

1, 对23种设计模式,大家的第一个印象就是抽象繁琐,记不住!!不常用??

其实设计模式是非常有用的,大家只要理解设计模式了,思想上就能有质的飞跃!

但是,提到设计模式大家就开始头头疼,尤其是在面试的时候,就是说不全说不对, 很尴尬。

我发明了个口诀 用来记忆:

  创建型模式:

      5种 (前段时间火的高启强的建工集团) 建 ,工, 单, 抽 ,原  建工集团抽签单独抽中了原型模式项目

  结构刑模式:

    7种 (享元 代理外事) 口诀就是( 贵州省有个)享元酒店它桥装 起来代理外事组

 行为型模式:

  11 种 

承接上面的享元酒店的事, 访问者,来访问酒店,观察(者)到了产品迭代 状态,下达命令 责任链人,中介者,要出来 解释,并拿出策略和模板 整改、和 写入备忘录

此图为网络引用的图:

这样23种设计模式是不是记住了,联想记忆法还是灰长有用,大家的智慧还是非常好的!

设计模式的六大原则

 1,单一职责原则

2,里氏替换原则

3,依赖倒转原则

4,接口隔离原则

5,迪米特法则

6,合成复用原则

口诀 : 迪米特家族,收 一(依) 礼(里) 单 合成复用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1388472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

有哪些好用的视频剪辑工具?这几款剪辑必备

有哪些好用的视频剪辑工具?随着社交媒体的兴起,视频内容已经成为人们获取信息、娱乐和交流的重要方式。对于许多内容创作者来说,选择一款合适的视频剪辑工具是至关重要的。今天,我们就来介绍几款视频剪辑工具,它们各具…

uniapp中,子组件给父页面传值(父组件)

前言 最近在做的一个小程序项目中,有一个身份切换的功能,点击切换按钮时,子组件向父组件传递身份信息,父页面依据这个身份信息对页面进行显示与隐藏。 具体实现 子组件中定义一个点击事件,在这里是identitySwitching()方法 &l…

flink1.15 维表join guava cache和mysql方面优化

优化前 mysql响应慢,导致算子中数据输出追不上输入,导致显示cpu busy:100% 优化后效果两个图对应两个时刻: - - -- 优化前 select l.id,JSON_EXTRACT(r.msg,$$.key1) as msgv (select id,uid from tb1 l where id?) join (select uid,msg from tb2) r on l.uidr.uid;-- 优化…

@Transactional注解导致@DS切换数据源失效

原因 spring 的Transactional声明式事务管理时通过动态代理实现的。 删除事物的注解 增加其他数据库的事务注解 Transactional(rollbackFor Exception.class, propagation Propagation.REQUIRES_NEW)

YOLOv8改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (支持检测、分割、关键点检测)

一、本文介绍 本文给大家带来的改进机制是二次创新的机制,二次创新是我们发表论文中关键的一环,本文给大家带来的二次创新机制是通过DiverseBranchBlock(DBB)模块来改进我们的检测头形成一个新的检测头Detect_DBB,其中DBB是一种重参数化模块,其训练时采用复杂结构,推理时…

基于apriori关联规则的商品推荐系统

项目背景: 随着电子商务的快速发展,用户在购物平台上面临了海量商品选择的问题。为了帮助用户更好地找到自己感兴趣的商品,提供个性化的推荐服务变得至关重要。基于Apriori关联规则的商品推荐系统可以根据用户的历史购买记录进行分析&#x…

分布式限流要注意的问题

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。 为什么需要匀速限流 同学们回想一下在Guava小节里…

如何部署Wagtail CMS并结合cpolar内网穿透实现远程访问管理界面

文章目录 前言1. 安装并运行Wagtail1.1 创建并激活虚拟环境 2. 安装cpolar内网穿透工具3. 实现Wagtail公网访问4. 固定的Wagtail公网地址 前言 Wagtail是一个用Python编写的开源CMS,建立在Django Web框架上。Wagtail 是一个基于 Django 的开源内容管理系统&#xf…

电商新趋势:解析养号的必要性及海外云手机运用攻略

在电商领域,什么最为关键?答案无疑是流量!然而,如何以较低成本获取大量流量成为了许多电商从业者头疼的问题。虽然直接投放广告是一种方式,但在内卷的情况下效果越来越难以令人满意,高昂的广告费用也原来越…

编译与链接(C/C++)

在C/C中关于代码的运行需要经过.c文件到.exe文件,而其中走过这些步骤这需要对原始的.c文件进行编译与链接。对于编译与链接主要构成了翻译环境,经过翻译环境之后生成.exe文件,然后在通过运行环境输出对应的结果。本篇主要讲解编译与链接。 以…

动手搓一个kubernetes管理平台(1)-需求和框架

先拍个脑袋 市面上对于kubernetes集群的管理平台其实不算少,但常用的就那么几个,比如厚重的rancher,比如老而弥坚的kube-dashboard,以及集成了很多其他功能的kubeSphere等,但和其他开源项目一样,为了满足大…

火爆!大厂流出的接口版本号规约,速度收藏

在实际项目开发中,API的版本号控制不仅仅是一个数字游戏,它的使用需遵循语义版本控制(Semantic Versioning)原则,确保代码的每一次更改都能通过版本号的变化得到准确的体现,本篇文章对版本号如何使用做了详…

八款常用uml用例图-画图干货

随着软件开发和系统设计的复杂度不断提升,UML已经成为业界标准。UML用例图作为其中一种重要图表,能够清晰地展示系统功能和用户需求。本文将为你介绍八款常用的UML用例图,助你轻松搞定画图难题! 一、费用报销系统UML用例图 二、登…

使用vite框架封装vue3插件,发布到npm

目录 一、vue环境搭建 1、创建App.vue 2、修改main.ts 3、修改vite.config.ts 二、插件配置 1、创建插件 2、开发调试 3、打包配置 4、package.json文件配置 上一篇文章讲述使用vite《如何使用vite框架封装一个js库,并发布npm包》封装js库,本文将…

Qt中QGraphicsView架构下实时鼠标绘制图形

上一章节介绍了关于QGraphicsView的基础讲解,以及简单的类图创建,由上一章节中最后展示的动画效果来看,今年主要讲述如何在QGraphicsView架构下,实时拖动鼠标绘制图形! 今天主要以矩形为例,再来看一下展示…

通过浏览器URL地址,5分钟内渗透你的网站!很刑很可拷!

今天我来带大家简单渗透一个小破站,通过这个案例,让你深入了解为什么很多公司都需要紧急修复各个中间件的漏洞以及进行URL解析拦截等重要操作。这些措施的目的是为了保护网站和系统的安全性。如果不及时升级和修复漏洞,你就等着被黑客攻击吧&…

SAP不同语言开发

文章目录 1 Please write English Nmae2 go to goto menu and translation3 Write your target language .4 Please input Chinese5 Summary 1 Please write English Nmae 2 go to goto menu and translation 3 Write your target language . 4 Please input Chinese 5 Summary…

【Docker】Docker基础教程

🦖我是Sam9029,一个前端 🐱‍🐉🐱‍🐉恭喜你,若此文你认为写的不错,不要吝啬你的赞扬,求收藏,求评论,求一个大大的赞!👍 基…

Unity中URP下的SimpleLit顶点着色器

文章目录 前言顶点着色器1、GPU Instance 相关2、顶点输入数据相关3、雾效混合因子4、对 uv 进行 Tilling 和 Offset 的应用 及 把顶点的坐标信息传给输出结构体5、把法线相关的结果,传给输出结构体6、光照贴图相关7、额外灯相关计算8、阴影相关 前言 在上一篇文章…

Vue项目中如何解决跨域详解

文章目录 一、跨域是什么二、如何解决CORSProxy方案一方案二方案三 一、跨域是什么 跨域本质是浏览器基于同源策略的一种安全手段 同源策略(Sameoriginpolicy),是一种约定,它是浏览器最核心也最基本的安全功能 所谓同源&#x…