[DP]Desigin Pattern Overview

YOLO26算法水面与液体识别+训练好的模型+393张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[未获取()] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 52 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.8528** mAP50-95 | 0.3441 Precision | 0.7729 Recall | 0.8354 train/box_loss | 1.5367 train/cls_loss | 1.0228 val/box_loss | 1.6809 val/cls_loss | 1.1758 【训练过程分析】 我这次训练了52个周期,模型在训练初期确实收敛速度很快,前20个周期mAP50从0.74逐步提升至0.82,这说明模型开始适应数据集,学习到一些关键特征。但到第30个周期后,提升速度逐渐放缓,到了40个周期时,mAP50达到0.85,这个阶段的曲线走势有些像磨砂玻璃,平滑且不规则,后期更是趋于平缓,表明模型可能已经达到最优解,再继续训练可能会有少量提升但代价较大。整体而言,从loss曲线来看,训练集的box_loss和cls_loss在52个周期内分别从1.80和1.25降到1.54和1.02,下降曲线较为稳定,但到了后期,这两项指标下降幅度逐渐减缓,尤其cls_loss下降至1.10左右后趋于稳定,这可能是模型对训练数据已有了较强的泛化能力,但也提示我们分类的稳定性可能还欠些火候。 至于验证集的表现,box_lo... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

设计模式是什么?

设计模式能干什么?

什么情况下使用设计模式?

我将按照以上顺序来简要的说明设计模式。


设计模式是什么?

通俗的说设计模式:对被用来在特定场景下解决一般设计问题的类和相互通信对象的描述。

GoF中经典的描述为:每一个模式描述了一个在我们周围不断重复发生的问题, 以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。

可能以上的描述可能听起来有点像是算法,事实上设计模式是代码层面上对解决问题代码的结构组织的描述。这里更加强调的是类之间,对象之间,类和对象之间的关系模式。


设计模式的四要素:

名字:用一两个词来描述模式的问题和解决方案。

比如说,我们要谈论工厂模式,但是我们并不知道工厂模式这个概念,那么我们交谈的时候是不是就说,哦,就是那个你不要自己在代码中new 出一个对象,这样会使的代码耦合紧密。就是用那个 我们封装了一个方法,这个方法就是专门来根据传入的参数获得一些对象的那个。

如果真的如上述所说,这相当糟糕,我要不断跟上你的思路,然后用一大段话去描述出到底怎么做,起了什么效果。

所以这里就有了名称要素的好处,使的我们在较高的抽象层次上进行设计,便于我们同他人交流设计思想和设计结果。hey,你这里应该用工厂模式,而不是自己new一个出来。 多么简单。

问题:描述应在何时使用模式。

解决方案:描述了设计的组成部份,部分之间的关系和各自的职责,以及协作方式。

效果:使用了该种设计模式所能带来预期的效果。


设计模式能干什么?

好了,现在我们来讨论讨论设计模式能干什么。

首先第一个好处,设计模式就如我上面所提到的,方便与他人交流设计思想和设计结果,在较高层次上设计。

其次,设计模式为我们描述了我们编码设计过程中不断发生的事,以及解决问题方案。

根据GoF 中描述  设计模式总结大概可以分为23种:

Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它 们具体的类。

Adapter:将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本 由于接口不兼容而不能一起工作的那些类可以一起工作。

Bridge:将抽象部分与它的实现部分分离,使它们都可以独立地变化。

Builder:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不 同的表示。 

Chain of Responsibility:为解除请求的发送者和接收者之间耦合,而使多个对象都 有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象 处理它。

Command:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数 化;对请求排队或记录请求日志,以及支持可取消的操作。

Composite:将对象组合成树形结构以表示“部分 -整体”的层次结构。Composite使 得客户对单个对象和复合对象的使用具有一致性。

Decorator:动态地给一个对象添加一些额外的职责。就扩展功能而言,Decorator模 式比生成子类方式更为灵活。

Facade:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层 接口,这个接口使得这一子系统更加容易使用。 

Factory Method:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。 Factory Method使一个类的实例化延迟到其子类。 

Flyweight:运用共享技术有效地支持大量细粒度的对象。

Interpreter:给定一个语言, 定义它的文法的一种表示,并定义一个解释器 , 该解释 器使用该表示来解释语言中的句子。 

Iterator:提供一种方法顺序访问一个聚合对象中各个元素 , 而又不需暴露该对象的 内部表示。 

Mediator:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式 地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

Memento:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外 保存这个状态。这样以后就可将该对象恢复到保存的状态。 

Observer:定义对象间的一种一对多的依赖关系 ,以便当一个对象的状态发生改变时 , 所有依赖于它的对象都得到通知并自动刷新。

Prototype:用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对 象。

Proxy:为其他对象提供一个代理以控制对这个对象的访问。

Singleton:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

State:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它 所属的类。 

Strategy :定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模 式使得算法的变化可独立于使用它的客户。 

Template Method:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。 Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

Visitor:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

好了,就是以上那么多,事实上这里只是个预览,我将在接下来的一周内对23种设计模式进行详细的分析和解释,并尽力结合spring源码分析这些模式应用环境。


如果要按照设计模式功效大概分个类,那么大概像这样:





什么情况下使用设计模式?

我手滑,写多了的。不过我会在接下来的23篇种进行深入分析应用场景,并结合spring源码。


LLC谐振变换器恒压恒流双竞争闭环控制simulink仿真(附说明文档) 内容概要:本资源是一套面向电力电子与智能控制领域的综合性科研仿真资料合集,核心聚焦于LLC谐振变换器的恒压恒流双竞争闭环控制策略设计与Simulink建模仿真实现,涵盖半桥LLC、双向全桥LLC等拓扑结构的调频闭环仿真,并提供详尽的说明文档与PPT辅助材料。资源体系不仅深入呈现LLC变换器的动态响应与控制逻辑,还扩展至双有源桥(DAB)变换器的软开关协同优化、最小应力控制、EPS调制策略及新扩展移相角优化等前沿技术,同时集成三相PWM整流器在电网不平衡条件下的功率平衡控制、VOC+SVPWM双闭环控制等典型应用场景。此外,资源包涵盖状态估计(如EKF、UKF、PF)、微电网经济调度、卡尔曼滤波融合、神经网络控制、PID优化、储能系统管理等多个交叉方向,特别强调对顶级EI期刊研究成果的高精度复现,旨在帮助科研人员快速掌握先进控制算法的核心思想与仿真实现方法。; 适合人群:电气工程、自动化、电力电子、新能源科学与工程等相关专业的硕士博士研究生、高校科研人员,以及从事新能源变换器、智能电网、电动汽车、微电网系统研发的工程技术人员。; 使用场景及目标:① 深入理解LLC与DAB变换器的闭环控制机理,掌握恒压恒流切换、软开关实现与损耗优化方法;② 利用Simulink平台构建复杂电力电子系统模型,开展动态性能分析与控制器参数整定;③ 复现高水平期刊论文中的先进控制策略,提升科研创新能力与论文发表竞争力;④ 支持毕业设计、科研课题、项目申报及工程原型开发中的仿真验证环节。; 阅读建议:建议结合提供的完整资源目录循序渐进学习,优先研读标注“顶级EI复现”的案例以获取权威方法参考,配合MATLAB/Simulink动手搭建模型,重点关注控制框图设计、调制逻辑实现与仿真结果对比,深入理解算法背后的物理意义与数学推导过程。 立即下载

相关推荐

概率神经网络的分类预测-基于PNN的变压器故障诊断(Matlab代码实现)

内容概要:本文系统阐述了基于概率神经网络(PNN)的变压器故障诊断方法,结合Matlab代码实现分类预测。通过提取变压器运行过程中的关键特征参数,构建PNN模型以实现对正常状态与典型故障状态(如绕组短路、铁芯故障等)的高效分类识别。文章深入剖析了PNN的网络结构、概率密度估计原理、训练机制及分类决策过程,并通过仿真实验验证了该方法在故障诊断任务中具备较高的准确率与鲁棒性,展现了其在电力系统状态监测与智能运维中的良好应用前景。; 适合人群:具备一定机器学习理论基础和Matlab编程能力的电气工程、自动化、智能电网等相关领域的研究生、科研人员以及从事电力设备状态监测与故障诊断工作的工程技术人员。; 使用场景及目标:①实现变压器早期故障的智能化诊断与预警,提升电力系统运行安全性;②为基于神经网络的工业设备故障分类任务提供可复现的算法实现范例与技术验证平台; 阅读建议:建议读者结合文中提供的Matlab代码,动手复现实验流程,深入理解PNN在实际分类问题中的参数配置、训练策略、性能评估方法,并鼓励将该方法迁移至其他电力设备或机电系统的故障诊断场景中进行拓展研究与优化改进。

第03章 模型创建-初识Design Modeler (梁、壳、实体模型建模)

第03章 模型创建-初识Design Modeler (梁、壳、实体模型建模) 冬 泳 怪 鸽 2020-08-11 08:56:37 ...

qq_42606601的博客 5996

戴尔G3/AWCC用户必看:揪出WMI Provider Host疯狂占用的元凶,附5.4.35旧版回退保姆级教程

本文针对戴尔G3/AWCC用户遇到的WMI Provider Host异常占用问题,提供了详细的诊断方法和解决方案。通过分析AWCC 5.5.14.0版本的资源占用问题,指导用户回退到稳定版AWCC 5.4.35,并附上保姆级教程和预防措施,帮助用户彻底解决系统卡顿问题。

weixin_30892037的博客 561

DP-组合模式(Composite Pattern)

组合模式(Composite Pattern) ——.NET设计模式系列之十一 Terrylee,2006年3月 概述 组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。 意图 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite模式使得...

weixin_30619101的博客 109

【UE5】三步搞定Pixel Streaming:从零搭建Windows像素流服务

本文详细介绍了如何在Windows平台上快速搭建UE5 Pixel Streaming像素流服务,从插件安装、项目打包到服务启动的全流程操作。通过实战案例和优化配置,帮助开发者实现零客户端配置、跨设备兼容的高性能3D应用流式传输,特别适合建筑可视化和实时协作场景。

weixin_29000991的博客 318

dify工作流的原理

摘要: Dify 工作流是一个基于有向无环图(DAG)的智能任务编排系统,支持多节点(如LLM调用、API工具、条件分支等)的可视化拖拽与流程编排。其核心原理包括执行引擎(解析DAG并管理节点依赖)、上下文变量传递(类Jinja模板的变量引用机制)和状态持久化(存储执行日志与中间结果)。工作流通过事件驱动执行,支持异步任务调度,并与RAG知识库、LLM服务等模块深度集成,最终可发布为API或对话应用。技术栈基于Python(FastAPI+Celery)和PostgreSQL,实现低代码化的AI应用开发。

nbspzs的专栏 2186

[Spring]Spring容器扩展点

假如我们要扩展Spring IoC容器,比如对某些bean后续处理,通常来说,我们并不需要去继承ApplicationContext ,取而代之的是 我们依赖于Spring本身所提供的扩展点来扩展Bean的功能。 1.通过实现BeanPostProcessor接口,来扩展bean public interface BeanPostProcessor { Object postPro

HeapStackk的博客 3376

Memory SystemsCache, DRAM, Disk翻译学习DRAM部分(二)

DRAM 的发展史

qq_33473931的博客 995

[Spring]简单Junit和Spring整合配置

首先采用了maven来部署所需要的jar包依赖 这里需要srping-context.jar,spring-test.jar,junit.jar,log4j.jar org.springframework spring-context 4.2.5.RELEASE org.springframework spring-test 4.2.5.R

HeapStackk的博客 2674

避坑指南:Vue调用摄像头常见6大报错解决方案(navigator.mediaDevices全兼容方案)

本文深入剖析了在Vue应用中调用摄像头时常见的六大报错,如权限拒绝、设备未找到等,并提供了基于navigator.mediaDevices的全兼容解决方案。内容涵盖从HTTPS环境配置、浏览器兼容性处理到摄像头资源管理与高级错误处理,旨在帮助开发者构建稳定可靠的企业级摄像头应用。

Black的专栏 338

矢量网络分析仪VNA的校准之SOLT方法

作者:杭州冥鸿电子科技有限公司 邮箱:huanglong@deepelec.com S参数的测量方法有两种,一种是基于扫频测量的原理(VNA),另外一种是基于快沿阶跃响应的原理(TDR)。 下图是VNA的原理框图,主要包括以下部分: (1)激励信号源:提供感兴趣的频率范围内的入射信号; (2)信号分离装置:含功分器和定向耦合器,分离出入射,反射和传输信号; (3)接收机:...

u010018619的博客 2万+

[Spring]Spring Bean的初始化 ---- getBean方法

Spring 无论实在spring 容器在初始化阶段 还是 懒加载的bean 都是通过BeanFactory的getBean方法来实例化bean的。 getBean方法提供了多种方式来获取bean 可以通过bean的名字,bean的类型等。 但是他们最后都是调用的doGetBean(...)方法 protected T doGetBean( final String name, f

HeapStackk的博客 1812

android usb读写,安卓(Android)下如何开发USB NFC读写器app

对安卓工程师来说,在安卓下使用USB设备需要了解很多硬件的内容,这可能会导致工程周期的延长或者app的不稳定。为了将这种风险降到最低,友我科技发布了NFC读写器在安卓下的sdk,使用NFC读写器的类接口,安卓工程师就可以直接调用NFC读写器了,简单可靠。NFC读写器的安卓库文件为:yoworfidreader.jar在ADT工程中导入yoworfidreader.jar库文件,即可在工程中引用NF...

weixin_36433781的博客 823

[Spring]new ClassPathXmlApplicationContext("application.xml")做了些什么

这里需要贴两张图 ClassPathXmlApplicationContext 继承关系树 这张图实际没画全,最上层为 DefaultResourceLoader,该类设置classLoader,并且将配置文件 封装为Resource文件  Resrource根据传入的路径的前缀来判断采取何种封装。 AbstractApplicationContext,该类完成了大部分的IO

HeapStackk的博客 1090

STM32实战开发(66):STM32图像处理开发教程

随着物联网、人工智能和嵌入式技术的不断发展,图像处理技术在嵌入式系统中的应用越来越广泛。图像处理不仅在视觉识别、安防监控、智能家居等领域中发挥着重要作用,也在工业自动化、医疗成像、无人驾驶等高科技领域中占据重要地位。而STM32凭借其强大的硬件性能和丰富的外设支持,成为了许多图像处理应用的理想平台。

2201_76125393的博客 1444

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

[DP]简单工厂,工厂方法和抽象工厂方法

简单工厂,工厂方法和抽象工厂方法

HeapStackk的博客 886

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

[DP]Bridge设计模式

Bridge设计模式 桥接设计模式 spring中的桥接举例

HeapStackk的博客 847

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[DP]Prototype设计模式

Prototype设计模式 深复制和浅复制 spring中的prototype

HeapStackk的博客 846

[Spring]Method Injection

[Spring]Method Injection

HeapStackk的博客 798

[Spring]Annotation-based container configuration_AnotationBasis_01

基于注解的容器配置 首先使用注解和xml配置,本质上没有好坏之分,只有适合不适合之分。如果你觉得哪个顺手就用哪个,或者都用。 首先要使用anotation-config 需要在xml中配置 :该句自动的注册AutowiredAnnotationBeanPostProcessor, CommonAnnotationBeanPostProcessor, PersistenceAnnota

HeapStackk的博客 677

[DP]Singleton设计模式

单例设计模式,单例设计模式的种类,spring中的单例。

HeapStackk的博客 660

[Spring]Annotation-based container configuration_AnotationBasis_02

@Component @Repository @Service @Controller 本质上以上四类没有区别,但是在你定义应用分层的时候 aop的时候 这些不同语义的注解 就有不同意义,未来Spring是否会给予这些语义注解特殊的意义还并不清楚 在配置java类里面注解@ComponentScan(basePackages = "com.domain")的情况下,会自动扫描com.d

HeapStackk的博客 612

[DP]Adapter设计模式

Adapter设计模式,适配器模式,spring中的适配器

HeapStackk的博客 596

[Spring]<context:annotation-config/>注册的BeanPostProcessor

配置对于使用注解装配bean提供了一定的支持 根据Spring文档主要注册如下四个 AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,RequiredAnnotationBeanPostProcessor,PersistenceAnnotationBeanPostProcessor 。 这四个Bean

HeapStackk的博客 565

[DP]Decorator设计模式

Decorator设计模式,装饰器设计模式,io流中的装饰器模式,spring中的装饰器模式

HeapStackk的博客 525

[Spring]Annotation-based container configuration_AnotationBasis_03 --JSR 330 Standard Annotations

JSR 330 Standard Annotations javax.inject javax.inject 1 由于这并不包含在javaspring框架中 所以需要通过maven导入依赖 @Inject 类似于@Autowired import javax.inject.Inject; public class SimpleMovieLister { private Mov

HeapStackk的博客 506
上一篇: [DP]为什么我们使用继承呢?
下一篇: [DP]简单工厂,工厂方法和抽象工厂方法
HeapStackk
博客等级 码龄12年 11粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值