全网最全最细的【设计模式】总目录,收藏起来慢慢啃,看完不懂砍我

news2024/12/24 17:26:01

文章目录

  • 一、设计模式七大原则
    • 1、单一职责原则
    • 2、接口隔离原则
    • 3、依赖倒置原则
    • 4、里氏替换原则
    • 5、开闭原则
    • 6、迪米特法则
    • 7、合成复用原则
  • 二、UML类图
  • 三、设计模式
    • 1、创建型模式
      • (1)单例模式(常用)
      • (2)原型模式
      • (3)工厂模式(常用)
      • (4)建造者模式(常用)
    • 2、结构型模式
      • (5)代理模式(常用)
      • (6)适配器模式(常用)
      • (7)桥接模式
      • (8)装饰者模式(常用)
      • (9)外观模式(常用)
      • (10)享元模式(常用)
      • (11)组合模式(常用)
    • 3、行为型模式
      • (12)模板方法模式(常用)
      • (13)命令模式
      • (14)访问者模式
      • (15)迭代器模式
      • (16)观察者模式
      • (17)中介者模式
      • (18)备忘录模式
      • (19)解释器模式
      • (20)状态模式(常用)
      • (21)策略模式(常用)
      • (22)责任链模式(常用)

一、设计模式七大原则

1、单一职责原则

设计原则之【单一职责原则】

2、接口隔离原则

设计原则之【接口隔离原则】,我只做我能做的事

3、依赖倒置原则

设计原则之【依赖反转原则】依赖反转、控制反转、依赖注入,都是什么意思?

4、里氏替换原则

设计原则之【里氏替换原则】

5、开闭原则

设计原则之【开闭原则】

6、迪米特法则

设计原则之【迪米特法则】,非礼勿近

7、合成复用原则

重新认识面向对象——Java写了五年,你真的弄明白什么是面向对象了吗?不,你一直都是在面向过程编程
什么是继承?什么是组合?为何说要多用组合少用继承?

二、UML类图

UML类图使用介绍

三、设计模式

在这里插入图片描述

1、创建型模式

(1)单例模式(常用)

设计模式之【单例模式】全解,单例模式实现方式,暴力打破单例模式与解决方案,你真的认识单例模式吗?

(2)原型模式

设计模式之【原型模式】,深入理解深拷贝与浅拷贝

(3)工厂模式(常用)

设计模式之【工厂模式】,创建对象原来有这么多玩法

(4)建造者模式(常用)

设计模式之【建造者模式】使用java建造者模式优雅创建对象

2、结构型模式

(5)代理模式(常用)

设计模式之【代理模式】,有事找我“经纪人”

(6)适配器模式(常用)

设计模式之【适配器模式】,两个人之间确实需要月老的搭线~

(7)桥接模式

设计模式之【桥接模式】,多用组合少用继承

(8)装饰者模式(常用)

设计模式之【装饰者模式】,实现“穿衣打扮”自由原来这么简单

(9)外观模式(常用)

设计模式之【外观/门面模式】,不打开这扇门永远不知道门后有多少东西

(10)享元模式(常用)

设计模式之【享元模式】,共享单车火起来并不是没有原因的

(11)组合模式(常用)

设计模式之【组合模式】,树形结构的完美解决方案

3、行为型模式

(12)模板方法模式(常用)

设计模式之【模板方法模式】,模板方法和函数式回调,哪个才是趋势?

(13)命令模式

设计模式之【命令模式】,方法调用的花式玩法

(14)访问者模式

设计模式之【访问者模式】,动态双分派的魅力

(15)迭代器模式

未完待续

(16)观察者模式

未完待续

(17)中介者模式

未完待续

(18)备忘录模式

未完待续

(19)解释器模式

未完待续

(20)状态模式(常用)

未完待续

(21)策略模式(常用)

未完待续

(22)责任链模式(常用)

未完待续

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

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

相关文章

mybatis-config.xml文件中的mappers标签

前言 在MyBatis中&#xff0c;< mapper >标签非常重要&#xff0c;因为它对应着我们存放sql语句的xml文件&#xff0c;在之前的使用中我们都是使用resource来指定路径&#xff0c;但其实除了resource可以指定路径的还有url和class但路径形式有所不同&#xff0c;下面来讨…

用「明道云+ChatGPT+Weaviate」挑战零代码1小时实现ChatPDF

ChatGPT流行起来之后&#xff0c;快速的出现了一批基于ChatGPT的工具应用&#xff0c;ChatPDF就是其中比较受欢迎的一款。它是一个可以让你与PDF文件进行对话的工具&#xff0c;既可以帮助你快速提取PDF文件中的信息&#xff0c;例如手册、论文、合同、书籍等&#xff1b;也可以…

【计算机视觉】最后显示的CIFAR-100数据集照片很模糊怎么解决?

文章目录 一、前言二、如何解决2.1 使用图像增强技术2.2 使用插值方法2.3 使用更高分辨率的图像数据集2.4 手动调整图像尺寸 三、总结 一、前言 如果从CIFAR-100数据集加载的图像显示模糊&#xff0c;可能有几个可能的原因&#xff1a; 分辨率较低&#xff1a;CIFAR-100数据集…

全力押注预制菜,叮咚买菜或错失即时零售红利

实际上&#xff0c;叮咚买菜相比于美团、京东更适合抢分即时零售的市场红利。 目前美团进入即时零售的逻辑是&#xff0c;拥有几百万骑手的履约软硬件可以复用&#xff0c;同时从外卖场景延伸到其他消费场景比较丝滑&#xff0c;从平台几千万用户的温饱满足&#xff0c;延展到多…

计算机网络实验(ensp)-实验10:三层交换机实现VLAN间路由

目录 实验报告&#xff1a; 实验操作 1.建立网络拓扑图并开启设备 2.配置主机 1.打开PC机 配置IP地址和子网掩码 2.配置完成后点击“应用”退出 3.重复步骤1和2配置每台PC 3.配置交换机VLAN 1.点开交换机 2.输入命名&#xff1a;sys 从用户视图切换到系统视图…

网络工程师精选习题详解(一)

请点击↑关注、收藏&#xff0c;本博客免费为你获取精彩知识分享&#xff01;有惊喜哟&#xff01;&#xff01; 1.在IPv4地址192.168.2.0/24中&#xff0c;表示主机的二进制位数是&#xff08; &#xff09;位。 A.8 B.16 C.24 D.32 答案&#xff1a;A /24示网络…

面对职业焦虑,我们能做些什么?

目录 大环境分析&#xff1a;AI 发展汹涌而上温水煮青蛙&#xff1a;那些“被替代”的“我们”码农分类&#xff1a;程序员都在做些什么码农黑暗季&#xff1a;失业潮原因分析程序员短期真的可替代吗&#xff1f;AI 发展来势汹汹&#xff0c;如何顺势而为最后&#xff1a;纵观全…

SpringBoot整合Swagger2,让接口文档管理变得更简单

在软件开发的过程中&#xff0c;接口文档的编写往往是一个非常重要的环节&#xff0c;因为它是前端和后端沟通的桥梁&#xff0c;帮助团队更好地协作。然而&#xff0c;手动编写接口文档不仅耗费时间&#xff0c;还容易出错&#xff0c;因此我们需要一种简单的方法来管理接口文…

宝武中南钢铁借助飞桨让钢筋超限监控有了“火眼金睛”

现代钢铁工业生产过程是一个复杂而庞大的生产体系&#xff0c;涵盖数百道工序。 在70多年的发展历程中&#xff0c;炼钢、轧钢、连铸以及节能减排等各项技术不断进化&#xff0c;无一不印证了中国钢铁在技术创新之路上获得的持续性突破。如今&#xff0c;宝武中南钢铁&#xff…

Java websocket 使用

简介 WebSocket 是一种基于 TCP 协议的全双工通信协议&#xff0c;可以在浏览器和服务器之间建立实时、双向的数据通信。在 Java 中&#xff0c;我们可以使用 Java API for WebSocket&#xff08;JSR 356&#xff09;来实现 WebSocket。 WebSocket 的作用是在 Web 应用程序中…

基于html+css的图展示77

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

Charles安装及抓取APP接口

一、Charles使用 Charles是一款代理服务器&#xff0c;通过过将自己设置成系统&#xff08;电脑或者浏览器&#xff09;的网络访问代理服务器&#xff0c;然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的&#xff0c;能够在Windows&#xff0c;Mac&#xff0c;…

STM32F4_DAC数模转换

目录 1. DAC简介 2. DAC框图 3. DAC功能介绍 3.1 DAC通道使能 3.2 DAC输出缓冲器使能 3.3 DAC数据格式 3.4 DAC转换 3.5 DAC输出电压 3.6 DAC触发选择 3.7 DMA请求 3.8 生成噪声 3.9 生成三角波 4. 相关寄存器 4.1 DAC控制寄存器&#xff1a;DAC_CR 4.2 DAC1通道…

1-《java基础》

1-《java基础》 一.java基本数据类型和引用类型1.基本数据类型&#xff1a;2.引用数据类型3.基本数据类型和引用数据类型区别3.1 存储位置3.2 传递方式 4.自动装箱&#xff0c;自动拆箱 二.equals和的区别三.static1.static关键字的用途2.static方法3.static变量4.static代码块…

Unity中级客户端开发工程师的进阶之路

上期UWA技能成长系统之《Unity高级客户端开发工程师的进阶之路》得到了很多Unity开发者的肯定。通过系统的学习&#xff0c;可以掌握游戏性能瓶颈定位的方法和常见的CPU、GPU、内存相关的性能优化方法。 UWA技能成长系统是UWA根据学员的职业发展目标&#xff0c;提供技能学习的…

加密解密软件VMProtect教程(六):主窗口之控制面板“项目”部分(3)

VMProtect 是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C、Visual Basic&#xff08;本机&#xff09;、Virtual Pascal和XCode编译器。 同时&#xff0c;VMProtect有一个内置的反汇编程序&#xff0c;可以与Windows和Mac OS X可执行文件一起…

wpf字符串格式化来实现空格占位 对齐问题Arial字符宽度不一致ChitGPT真牛

console是正常的。xml界面不正常&#xff0c;对不齐。 可能的原因各字符宽度不一致导致的。换个字体试试。黑体就正常。默认的Arial就不对。 在 C# 中&#xff0c;可以使用字符串格式化来实现空格占位。具体的做法是在格式字符串中使用占位符 {n}&#xff0c;其中 n 表示要占用…

一单一结,靠Python爬虫赚外快,在家就能做

今年以来我们听到了太多负面声音&#xff0c;“互联网寒冬”“裁员”“优化”“失业”&#xff0c;同时也听到了许多朋友迷茫的声音&#xff1a; 面对未来的焦虑&#xff1a;未来我应该往哪方面发展&#xff1f; 面对裁员的迷茫&#xff1a;被裁&#xff0c;下一份工作如何选…

Playwright系列:第11章 CI/CD集成(Jenkins/Gitlab)

下方查看历史精选文章 重磅发布 - 自动化框架基础指南pdfv1.1大数据测试过程、策略及挑战 测试框架原理&#xff0c;构建成功的基石 在自动化测试工作之前&#xff0c;你应该知道的10条建议 在自动化测试中&#xff0c;重要的不是工具 CI/CD即持续集成/持续交付,是软件开发的一…

UDP通信相关

Linux网络编程-UDP单播服务客户端代码实现 1、服务端 只接收一个字符串 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <sys/types.h> #…