用STM32硬件思维学JAVA--23种设计模式

系列文章目录

1.【软考之软件设计师】PPT课件
2.【软考之软件设计师】学习笔记
3.【软考之软件设计师】上午题—信管网(每天更新)
4.【软考之软件设计师】上午题—希赛网(每天更新)
5.【软件设计师真题】下午题第一大题—数据流图设计
6.【软件设计师真题】下午题第二大题—数据库设计
7.【软件设计师真题】下午题第三大题—UML 分析与设计
8.【软件设计师真题】下午题第四大题—算法设计
9.【软件设计师真题】下午题第五大题—面向对象程序设计


23种设计模式

创建型设计模式:5种
结构型设计模式:7种
行为型设计模式:11种
在这里插入图片描述

创建型模式相当于这个外设比如232模块还没设计,要设计了;

结构型模式相当于有好多外设了比如232模块,LCD模块,电机驱动模块要看他们怎么组合了,领导想要哪个我们组合哪个,搭积木嘛;

行为行模式相当于比如电机驱动模块,要三个电机,XYZ轴,这三个电机怎么去分配,最终去完成一个图形的绘制这三个电机怎么配合。

一、创建型模式

0、简单工厂模式

说明:该工厂类可以根据不同的参数,返回不同的实例对象;被创建的对象通常都有一个共同的抽象父类。工厂模式中创建实例的方法是一个静态方法。(类图如下)
在这里插入图片描述

举个例子:现在有一个开发板,上面PA9,PA10是一组串口,这两个引脚是接232模块还是接485模块,看领导想要哪个,反正咱这两个模块都有,杜邦线一接就行。

1、工厂方法模式(类)

在这里插入图片描述
在这里插入图片描述

举个例子:还是那个串口,不过咱现在正在设计板子,这两个引脚是接232模块还是接485模块,看领导想要哪个,反正咱板子还有空间都能画上去。

2、抽象工厂模式(对象)

抽象工厂模式比工厂方法模式更宽泛一点,相当于说我整个芯片100多个引脚,有TIM,有ADC,有串口,相咋实现功能,看你心情。 ## 3、生成器模式 / 建造者模式(对象) 生成器模式(建造者模式)相当于咱去选型这个STM32主控了便宜的有F1,贵点的有F4,在牛B一点的有F7,看领导给的成本要求吧,(产品有不同的套餐,给的钱不同,创建的产品选择的套餐就不一样)尽量选性能好一点的方便后面设计嘛。

4、原型模式(对象)

原型模式相当于咱已经选好用哪款32了,设计最小系统时,你不会还自己画吧,那当然直接抄开发板原理图或者从之前画好的原理图中复制过来了。

5、单例模式(对象)

单例模式相当于咱画最小系统的一个指示灯,想原理图画的美观方便阅读,得用网络标号了吧,一个指示灯一种网络标号命名,不能多个指示灯控制引脚都接一个网络标号吧,而且当原理图画的很复杂直接ctrl+F搜这个网络编号也能搜到这个指示灯模块。

二、结构型模式

1、适配器模式

适配器模式相当于咱最小系统画好了,开始搞芯片供电这块了,一般都是3.3V供电,但是咱的电源都是12V,24V这样的,所以要加稳压电路,DCDC,LDO这样的去适配主控的电源电压。

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

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

相关文章

[教程][Ubuntu][Qt]将Qt程序打包成deb文件,发布、安装及使用

文章目录 在Ubuntu上用qt软件编写的程序完成后,如果需要在另一台纯净的Linux系统上运行,则可以通过打包成deb文件的形式进行移植,经测试可用。 一、前言 如果你是一名Qt开发者,并希望将你的应用程序打包成能在Ubuntu等基于Debian的Linux发行版上无缝分发和使用的包,那么理…

Web服务器之Nginx

Nginx(发音为Engine X)是一款开源的高性能HTTP和反向代理服务器,同时也提供了IMAP/POP3/SMTP服务。由伊戈尔赛索耶夫(Igor Sysoev)为俄罗斯访问量第二的Rambler.ru站点开发,Nginx自发布以来,凭借…

前端浏览器知识总结

#1024程序员节 | 征文# 总结一些前端领域浏览器常用知识,浏览器跨域、缓存、渲染、存储、协议等。 目录 一、同源策略 1.定义 2.原理 3.作用 二、跨域问题 1.产生原因 2.解决方案 1)JSONP 2)CORS (1)定义 …

Django 序列化serializers

在Django中,序列化通常指的是将数据库中的模型数据转换为JSON、XML或其他格式的过程。Django提供了内置的序列化工具,可以通过django.core.serializers模块进行序列化操作。 当你使用Django的序列化功能时,可以序列化以下两种对象类型&#…

nginx负载均衡机制实现用户无感更新服务

项目用户数量比较多时,项目发布时用户不能访问,对用户来说体验很不好,对企业来说来说也是一种损失,如何无感知平滑稳定的升级,下面开始介绍。 当前文章用的方法是,后端服务器配置多个节点:在 N…

C++20中头文件syncstream的使用

<syncstream>是C20中新增加的头文件&#xff0c;提供了对同步输出流的支持&#xff0c;即在多个线程中可安全地进行输出操作&#xff0c;此头文件是Input/Output库的一部分。包括&#xff1a; 1.std::basic_syncbuf&#xff1a;是std::basic_streambuf的包装器(wrapper)&…

深度学习实战项目】基于OPenCV的人脸识别考勤系统软件开发【python源码+UI界面+功能源码详解】

背景及意义 人脸识别&#xff08;Face Recognition&#xff09;是基于人的脸部特征信息进行身份识别的一种生物识别技术&#xff0c;可以用来确认用户身份。本文详细介绍了人脸识别基本的实现原理&#xff0c;并且基于python与pyqt开发了人脸识别与信息管理软件&#xff0c;主要…

R语言机器学习教程大纲

文章目录 介绍机器学习算法监督学习Supervised Learning分类Classification回归Regression 无监督学习 Unsupervised Learning聚类 Clustering降纬 Dimensionality Reduction相关Association 强化学习Reinforcement Learning模型自由 Model-Free Methods模型驱动 Model-Based M…

猎板高频PCB技术深度解析与设计实践指南

高频PCB&#xff08;印刷电路板&#xff09;设计是电子工程领域的一项关键技术&#xff0c;特别是在通信、雷达、卫星导航等高速数据传输和信号处理应用中。本文档旨在提供一份聚焦的高频PCB技术资料&#xff0c;涵盖设计原则、材料选择、布线策略、接地与屏蔽、阻抗控制以及制…

【随便聊聊】MySQL数据类型详解:从基础到高级应用

MySQL数据类型详解&#xff1a;从基础到高级应用 在数据库设计和管理中&#xff0c;选择合适的数据类型对于数据的存储效率、查询性能以及数据完整性都至关重要。MySQL作为广泛使用的数据库管理系统&#xff0c;提供了多种数据类型以满足不同的需求。本文将详细解析MySQL中的各…

51单片机——OLED显示图片

取模软件&#xff1a;链接:https://pan.baidu.com/s/1UcrbS7nU4bsawNxsaaULfQ 提取码:gclc 1、如果图片大小和格式不合适&#xff0c;可以先用Img2Lcd软件进行调整图片大小&#xff0c;一般取模软件使用的是.bmp图片&#xff0c;可以进行输出.bmp格式。软件界面如下&#xff1…

创建型模式-----建造者模式

目录 背景&#xff1a; 构建模式UML 代码示例 房子成品&#xff1a; 构建器抽象&#xff1a; 具体构建器&#xff1a; 建筑师&#xff1a; 测试部…

Rust小练习,编写井字棋

画叉画圈的游戏通常指的是 井字棋&#xff08;Tic-Tac-Toe&#xff09;&#xff0c;是一个简单的两人游戏&#xff0c;规则如下&#xff1a; 游戏规则 棋盘&#xff1a;游戏在一个3x3的方格上进行。玩家&#xff1a;有两个玩家&#xff0c;一个用“X”表示&#xff0c;另一个…

VScode远程开发之remote 远程开发(二)

VScode远程开发之remote 远程开发&#xff08;二&#xff09; 使用vscode进行远程开发很简单&#xff0c;在拓展里搜索 Remote Development&#xff0c;就可以搜索到微软提供的远程开发大礼包&#xff0c;里面包含了 通过 SSH 远程服务器 远程容器 远程 WSL&#xff08;Win…

凯伦股份荣获中国钢结构协会2024年度技术创新奖

10月21-22日&#xff0c;中国钢结构协会成立40周年纪念大会暨2024中国钢结构大会在北京市召开。会议举行了纪念中国钢结构协会成立40周年颁奖&#xff0c;对中国钢结构协会科学技术进步奖、技术创新奖进行了颁奖。由凯伦股份完成的“高分子卷材金属复合板及工程应用”项目荣获2…

微信小程序canvas 生成二维码图片,画图片,生成图片,将两个canvas结合并保存图片

**需求实现步骤如下 先定义两个canvas一个canvas myQrcode画二维码的图片另一个canvas mycanvas画一个背景图&#xff0c;并把二维码画到这个canvas上&#xff0c;mycanvas这个canvas生成一张图片&#xff0c;返回图片的临时路径最后保存图片到手机** 首先wxml,新版微信小程序…

【Javaee】网络原理—TCP协议的核心机制

前言 TCP/IP五层协议是互联网中的主流模型&#xff0c;为网络通信提供了一个稳固的框架。 主要包含了应用层&#xff0c;传输层&#xff0c;网络层&#xff0c;数据链路层&#xff0c;物理层。 本篇主要介绍传输层的TCP协议的核心机制 一. 确认应答&#xff08;ack&#xf…

JMeter压测时报错Address Already in use 或 java.net.SocketException: Socket closed

由于模拟并发请求会占用一个端口&#xff0c;和远程来建立连接&#xff0c;但是windows本身提供的端口访问机制受到限制&#xff0c;在Windows操作系统中&#xff0c;端口号的使用受到一定的管理和限制。端口号1024到5000&#xff08;或有时称为“动态端口”或“私有端口”范围…

使用 pydub 的 AudioSegment 获取音频时长 - python 实现

通过使用 pydub 的 AudioSegment 获取音频时长&#xff0c;音频常用格式如 m4a,wav等。 安装 python 库&#xff1a; pip install pydub 获取 m4a 格式的音频时长代码如下&#xff0c;代码如下&#xff1a; #-*-coding:utf-8-*- # date:2024-10 # Author: DataBall - XIAN #…