【设计模式】设计原则和常见的23种经典设计模式
设计模式
1. 设计原则(记忆口诀:SOLID)【记忆口诀:单开里依接迪合(单开礼仪接地和)】
(1)单一职责原则(Single Responsibility Principle, SRP)
(2)开闭原则(Open-Closed Principle, OCP)
(3)里氏替换原则(Liskov Substitution Principle, LSP)
(4)依赖倒置原则(Dependence Inversion Principle, DIP)
(5)接口隔离原则(Interface Segregation Principle, ISP)
(6)迪米特法则(最少知道原则)(Law of Demeter, LoP)
(7)合成复用原则(Composite Reuse Principle, CRP)
2. 常见的23种经典设计模式
2.1 创建型模式(5种)【记忆口诀:创工抽单建原(床工臭蛋减员)】
(1)工厂模式(Factory Pattern)
(2)抽象工厂模式(Abstract Factory Pattern)
(3)单例模式(Singleton Pattern)
(4)建造者模式(Builder Pattern)
(5)原型模式(Prototype Pattern)
2.2 结构型模式(7种)【记忆口诀:结适装代外桥组享(解释装袋外侨租箱)】
(1)适配器模式(Adapter Pattern)
(2)装饰器模式(Decorator Pattern)
(3)代理模式(Proxy Pattern)
(4)外观模式(Facade Pattern)
(5)桥接模式(Bridge Pattern)
(6)组合模式(Composite Pattern)
(7)享元模式(Flyweight Pattern)
2.3 行为型模式(11种)【记忆口诀:行策模观迭责命备状访中解(行测暮光蝶这名被撞房中介)】
(1)策略模式(Strategy Pattern)
(2)模板模式(Template Pattern)
(3)观察者模式(Observer Pattern)
(4)迭代器模式(Iterator Pattern)
(5)责任链模式(Chain of Responsibility Pattern)
(6)命令模式(Command Pattern)
(7)备忘录模式(Memento Pattern)
(8)状态模式(State Pattern)
(9)访问者模式(Visitor Pattern)
(10)中介者模式(Mediator Pattern)
(11)解释器模式(Interpreter Pattern)
相关文章:
【设计模式】设计原则和常见的23种经典设计模式
设计模式 1. 设计原则(记忆口诀:SOLID)【记忆口诀:单开里依接迪合(单开礼仪接地和)】 (1)单一职责原则(Single Responsibility Principle, SRP) ÿ…...
Spring Cloud Gateway自定义断言
问题:Spring Cloud Gateway自带的断言(Predicate)不满足业务怎么办?可以自定义断言! 先看Spring Cloud Gateway是如何实现断言的 Gateway中断言的整体架构如下: public abstract class AbstractRoutePred…...
智能测径仪在胶管行业的应用
关键字:胶管外径尺寸测量,胶管检测仪器,胶管外径检测,高温胶管外径检测,软硬胶管检测, 智能测径仪在家胶管行业中的应用主要体现在对胶管外径的精确测量和控制上。在胶管生产过程中,外径的大小直…...
vue自定义主题皮肤方案
方案一:CSS变量换肤(推荐) 利用css定义变量的方法,用var在全局定义颜色变量(需将变量提升到全局即伪类选择器 :root)然后利用js操作css变量,document.getElementsByTagName(‘body’)[0].style…...
iOS中使用schema协议调用APP和使用iframe打开APP的例子
大家好我是咕噜美乐蒂,很高兴又和大家见面了! 当调用自定义 URL scheme 或使用 iframe 打开应用程序时,可以采取以下详细步骤: 使用自定义 URL scheme 协议调用应用程序 1.首先,确认目标应用程序已经注册了自定义 U…...
2024.3.11
提示并输入一个字符串,统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 #include <iostream> #include<string> using namespace std;int main() {cout << "please input a string:" << endl;string str;g…...
Web服务器需要警惕的一些安全隐患
Web服务器需要警惕的一些安全隐患有哪些,今天德迅云安全就带您来了解下。熟悉了解了就知道怎么规避风险。不过无论是什么漏洞,都体现着安全是一个整体的真理,考虑Web服务器的安全性,必须要考虑到与之相配合的操作系统。 1.物理路径…...
MinGW-w64的下载与安装
文章目录 1 下载2 安装3 配置环境变量4 验证 1 下载 官网地址:https://www.mingw-w64.org/github地址:https://github.com/niXman/mingw-builds-binaries/releases windows下载 跳转github下载 版本号选择:13.2.0是GCC的版本号;…...
docker使用笔记
查看本机上所有镜像 docker images打包项目(打包完成后自动载入镜像) The command docker build -t search-server . you provided is a standard way to build a Docker image. The -t flag tags the resulting image, and search-server is the tag …...
新规正式发布 | 百度深度参编《生成式人工智能服务安全基本要求》
2024年2月29日,全国网络安全标准化技术委员会( TC260 )正式发布《生成式人工智能服务安全基本要求》(以下简称《基本要求》)。《基本要求》规定了生成式人工智能服务在安全方面的基本要求,包括语料安全、模…...
2024年AI辅助研发的趋势和影响
摘要:随着人工智能技术的迅猛发展,2024年AI辅助研发正成为科技界和工业界的瞩目焦点。本文将探讨AI辅助研发在各个领域的应用和影响,并展望2024年AI辅助研发的趋势。 引言 随着人工智能技术的不断进步,AI辅助研发正逐渐渗透到各…...
2k_Day1:今天是设计模式的大白话1
大白话: 原则有一点很难做到,就是定义好的类,只能加不能改(开放-关闭原则) 1.工厂模式就是,比如你定了一个汽车接口,然后小车、中车、大车都继承这个接口,这时,定一个汽…...
面试官:说说你对事件循环的理解
一、事件循环是什么 首先,JavaScript是一门单线程的语言,意味着同一时间内只能做一件事,但是这并不意味着单线程就是阻塞,而实现单线程非阻塞的方法就是事件循环 在JavaScript中,所有的任务都可以分为 同步任务&#…...
【SpringCloud微服务实战03】Nacos 注册中心
一、Nacos安装 官方文档安装Nacos教程:Nacos 快速开始 这里安装的是1.4.7版本,安装之后访问http://127.0.0.1:8848/nacos 管理界面如下:(用户名:nacos,密码:nacos) 二、Nacos服务注册和发现 1、在父工程中配置文件pom.xml 中添加spring-cloud-alilbaba的管理依赖:…...
FLatten Transformer_ Vision Transformer using Focused Linear Attention
paper: https://arxiv.org/abs/2308.00442 code: https://github.com/LeapLabTHU/FLatten-Transformer 摘要 当将transformer模型应用于视觉任务时,自注意的二次计算复杂度( n 2 n^2 n2)一直是一个持续存在的挑战。另一方面,线性注意通过精心设计的映射…...
STM32CubeMX学习笔记17--- FSMC
1.1 TFTLCD简介 TFT-LCD(thin film transistor-liquid crystal display)即薄膜晶体管液晶显示器。液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),每个像素都可以通过点脉冲直接控制,因而每个节点都…...
【MogDB】实战MogDB数据库适配Halo博客系统1.6版本(基于springframework+hibernate+HikariPool)
前言 前一篇文章说了MogDB适配Halo,【MogDB】将流行的博客系统Halo后端的数据库设置为MogDB,但是适配的是2.x版本,由于2.x版本已经引入了对postgresql的支持,而MogDB对于postgresql有很好的兼容性,因此适配起来很简单。但是由于halo2.x的版本…...
Python与FPGA——局部二值化
文章目录 前言一、局部二值化二、Python局部二值化三、FPGA局部二值化总结 前言 局部二值化较全局二值化难,我们将在此实现Python与FPGA的局部二值化处理。 一、局部二值化 局部二值化就是使用一个窗口,在图像上进行扫描,每扫出9个像素求平均…...
shell文本处理工具-shell三剑客1
shell脚本常用基础命令2 shell脚本常用基础命令 shell脚本常用基础命令2一、grep用法二、sed用法2.1p参数 (显示)n参数(只显示处理过的行) 文本处理三剑客:grep sed awk 一、grep用法 grep -E egrep (扩展搜索正文表…...
函数的传入参数-传参定义
基于函数的定义语法: def 函数名(传入参数)函数体return 返回值 可以有如下函数定义: def add(x,y):return xyprint(f"{x} {y}的结果是:{result}") 实现了,每次计算的是xy,而非…...
Kettle8.2转换组件实战:利用增加序列实现Excel数据自动编号
1. 为什么需要给Excel数据自动编号? 每次处理Excel数据时,最头疼的就是要给每行数据加个序号。手动添加不仅效率低,还容易出错。上周我帮市场部处理3000多条客户数据,就因为手工编号搞错顺序,差点引发数据混乱。这时候…...
5分钟搞定抖音无水印下载:douyin-downloader终极指南
5分钟搞定抖音无水印下载:douyin-downloader终极指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...
动态规划之【树形DP】第4课:树形DP应用案例实践3
动态规划之【树形DP】第4课:树形DP应用案例实践3 选课 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学…...
告别杂音!利用ES7210阵列麦克风提升RK3288设备录音质量的实战优化
智能硬件音频革命:ES7210阵列麦克风在RK3288平台的高清降噪实战 当会议室里的空调嗡嗡作响,当孩子在隔壁房间嬉戏打闹,当窗外的汽车鸣笛此起彼伏——这些日常环境噪音是否总让你的语音交互设备"听不清"用户指令?传统单…...
Python如何在异步中运行同步代码_使用loop.run_in_executor处理计算
async函数中不可直接调用同步CPU密集型代码,因其会阻塞事件循环导致异步失效;应使用run_in_executor配合线程池或进程池执行,注意参数传递、异常处理与资源清理。为什么不能直接在 async 函数里调用同步 CPU 密集型代码因为 async 函数运行在…...
QHotkey:跨平台全局快捷键解决方案架构与实践指南
QHotkey:跨平台全局快捷键解决方案架构与实践指南 【免费下载链接】QHotkey A global shortcut/hotkey for Desktop Qt-Applications 项目地址: https://gitcode.com/gh_mirrors/qh/QHotkey QHotkey是一个专为Qt桌面应用程序设计的全局快捷键管理工具&#x…...
30KHz调频深度0.5%:用示波器实测SSC扩频时钟的完整指南(以PCIe为例)
30KHz调频深度0.5%:用示波器实测SSC扩频时钟的完整指南(以PCIe为例) 在高速数字系统设计中,电磁干扰(EMI)始终是工程师面临的核心挑战之一。当PCIe 3.0信号以8GT/s速率传输时,时钟信号的谐波辐射…...
Unity自动寻路实战:用NavMeshAgent实现动态路径绘制(附完整Shader代码)
Unity动态路径可视化:用NavMeshAgent与Shader打造流动导航线 在角色扮演类游戏开发中,路径可视化不仅是功能需求,更是提升玩家体验的关键设计。当角色在复杂场景中自动寻路时,一条会"呼吸"的流动路径线,远比…...
从零开始:为Pixel设备编译定制AOSP系统的完整指南
1. 环境准备:搭建AOSP编译基础 编译AOSP系统就像盖房子需要先打地基,准备工作直接影响后续所有环节的顺畅度。我曾在不同配置的电脑上尝试过十几次编译,深刻体会到环境配置的重要性。首先需要一台性能足够的Linux机器,推荐Ubuntu …...
04华夏之光永存:黄大年茶思屋榜文解法「第3期4题」
华夏之光永存:黄大年茶思屋榜文解法「第3期4题」 |小标题:面向元编程的诊断调试技术 一、摘要 本题属于编译器与编程语言领域底层难题,聚焦多门类EDSL统一映射系统、元编程运行时双向调试能力构建,本文采用工程化可复现逻辑,提供两条标准化解题路径,全程符合工程师技…...
