12种设计模式的快速参考

十二种设计模式 作用:面向对象高内聚(Cohesion)和低耦合(Coupling)。因此,无论是封装、继承、多态还是设计模式都是为了这两个目标在努力。设计模式体现的是一种思想,而思想是指导行为的一切,设计模式可以指导程序员设计和开发。​。 阅读详情

设计模式开篇——一些原则
设计模式快速参考-简单工厂模式
设计模式快速参考-工厂方法模式
设计模式快速参考-单例模式
设计模式快速参考-适配器模式
设计模式快速参考-组合模式
设计模式快速参考-外观模式
设计模式快速参考-代理模式
设计模式快速参考-命令模式
设计模式快速参考-观察者模式
设计模式快速参考-策略模式
设计模式快速参考-模板方法模式
设计模式快速参考-参观者模式

附上原则篇
设计软件的几个原则,这个也是设计模式的精髓所在:
1.开-闭原则
1).客户的需求是不稳定的,通过扩展已有的软件系统而不是通过修改软件系统来满足客户的需求,这样的软件系统就满足开-闭原则,即软件系统要有一定的灵活性和适应性。
2).已有的模块,特别是抽象层的模块不能修改,保证软件系统的稳定性和延续性。
解决问题的关键是抽象化,把它与具体实现分离开来。接口(interface),抽象类的应用
对可变性封装:将可变性封装到一个对象里。

2.抽象类
抽象类不会有实例,一般作为父类为子类继承,一般包含这个系的共同属性和方法。
注意:好的继承关系中,只有叶节点是具体类,其他节点应该都是抽象类,也就是说具体类
是不被继承的。将尽可能多的共同代码放到抽象类中。

3.里氏代换原则
在有基类出现的地方,子类均可以替代。
当两个具体类关系违反里氏代换原则时,一种办法是抽象出一个基类,作为这两个类的父类,
一种是应用组合聚合关系建立关系。
不要为了使用某些类的方法(功能)而滥用继承。

4 依赖倒转原则
抽象不应该依赖与细节,细节应当依赖与抽象。
要针对接口编程,而不是针对实现编程。
传递参数,或者在组合聚合关系中,尽量引用层次高的类。
主要是在构造对象时可以动态的创建各种具体对象,当然如果一些具体类比较稳定,就不必在弄一个抽象类做它的父类,这样有画舌添足的感觉

5 接口隔离原则
定制服务的例子,每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干

6 合成/聚合原则
尽量使用合成聚合原则,少用慎用继承。
合成:一荣俱荣,一损俱损,整体和部分的生命周期是一样的
聚合:部分可以是整体的一部分,也可以脱离整体而存在。
区分Has a和Is a的问题

7 迪米特法则
最少知识原则。不要和陌生人说话。
揭秘12-Factor Agents:打造可靠LLM应用的秘诀 《12-Factor Agents:构建生产级LLM应用的新指南》介绍了12项核心原则,帮助开发者构建可靠、可扩展的大型语言模型(LLM)应用。这些原则包括自然语言到工具调用转换、提示管理、上下文窗口控制、结构化输出工具等,强调模块化设计、API简化工作流和状态管理。该指南旨在让缺乏AI背景的工程师也能成功集成AI功能,通过小而专注的代理设计模式提升产品智能化水平。文章还推荐了相关资源和同类项目(如Airflow、Prefect等)供参考,为构建生产级LLM应用提供了实用框架。 阅读详情

相关推荐

12种设计模式

汇集12中常用开发模式,简单易懂。代码重构,UML类图,设计原则,工厂模式。。

十二种常见设计模式代码详解

设计模式有创建型模式、结构型模式与行为型模式 创建型:单例模式、工厂模式(简单工厂,工厂方法,抽象工厂) 结构型:适配器模式、门面模式、装饰器模式、注册树模式、代理模式、管道模式 行为型:策略模式、观察者模式、命令模式、迭代器模式

eyes++的博客 4675

12种常用设计模式代码实现

包含策略模式、抽象工厂模式、代理模式、单例模式、工厂方法、观察者模式 静态工厂方法、命令模式、适配器模式、外观模式、原型模式、组合模式

十二种常见设计模式

文章目录原则开闭原则迪米特法则(最少知识原则)合成复用法则依赖倒转原则设计模式简单工厂模式工厂模式简单工厂模式适用场景工厂方法模式适用场景抽象工厂模式单例模式懒汉式多线程与单例模式饿汉式单例对象的释放代理模式应用场景外观模式适配器模式模板方法模式策略模式命令模式观察者模式装饰模式 原则 开闭原则 对扩展开放,对修改关闭 增加功能是通过增加代码去实现 而不是去修改代码 例子:实现一个计算器 抽象类 把各个操作 写成新的类 保证 增加操作时 只需要增加相应的操作类 class Abstract

qq_40701470的博客 960

12种设计模式源码

该资源包含了12中常用的设计模式的源代码,包括了适配器模式,建造者模式命令行,外观,装饰,观察者等设计模式,代码简单易懂,适合初学设计模式的人。

【屠龙之术】SAP 欧洲公司 高级合规性报表 FEC

所谓FEC ,其实是法国税务局要求法国的公司,每年要向税务局进行提交的税务报告,这个报告有特殊的格式,进行加密,法国公司要在收到税务局通知以后,及时进行报送,如果不报送,或者报送不合格文件,将面临5000欧的罚款。-----------------------------------------------进入正文----------------------------------------------------------------------有专门的T-code,PPT我就不贴了,我直接截图。

竹大的博客 1959

最常用的12种设计模式

1.策略模式(Strategy): 定义了算法家族, 分别封装起来, 让它们之间可以互相替换. 比如Collections.sort(List list, Comparator c); 可以通过实现多个Comparator接口来达到多种排序的目的. 2.装饰着模式(Decorator): 动态的给一个对象添加一些额外的职责. 比如java.io包. BufferedInputStream封装了Fi...

飞鹰 365

从零到一:EHB-电机复合制动系统的Simulink仿真实战指南

本文详细介绍了EHB-电机复合制动系统在纯电动汽车中的Simulink仿真实战指南。通过系统概述、建模核心模块解析、控制策略开发及典型问题排查,帮助读者掌握从零到一的开发流程。重点讲解了液压子系统建模、电机再生制动模型及整车动力学集成,为开发者提供了一套完整的解决方案。

hh234的博客 1006

学了23种设计模式,这一篇就够了

设计模式1、模板方法模式2、代理模式3、装饰器模式4、策略模式5、状态模式6、责任链模式7、适配器模式8、观察者模式9、外观模式11、组合模式12、工厂模式13、抽象工厂模式14、单例模式15、享元模式15、命令模式16、原型模式17、建造者模式18、桥接模式19、备忘录模式 1、模板方法模式 官方:定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 理解:如果你已知某一业务(toStudy)的大体执行步骤,比如早上必须学英文,但下午学啥不

yiqiu1959的博客 2135

手把手教你解决Ubuntu 20.04虚拟机桥接模式下的网络问题:DHCP与静态IP配置全指南

本文详细解析了Ubuntu 20.04虚拟机在桥接模式下的网络配置问题,包括DHCP与静态IP的配置方法及常见故障排查技巧。通过深入讲解桥接模式原理和提供实战操作指南,帮助用户解决无法访问外网、ping不通等典型网络问题,实现虚拟机与物理网络的无缝连接。

weixin_29256771的博客 542

无人机芯片模块技术要点分析

恶劣环境下信号稳定性:无人机在恶劣环境下工作时,遥感系统采集的信号往往很不稳定,视频信号处理芯片需要具备强抗干扰能力,能辨别脉冲脉宽为50ns以上、幅度为0V~4.5V的输入信号。这种架构能兼顾强大的运算能力和灵活的接口控制。芯片小型化:麻省理工学院的研究人员已设计出仅20平方毫米的微型芯片,可处理无人机飞行所需的惯性数据和相机图像,为微型无人机的发展奠定了基础。光子集成芯片(PIC) :研究显示,与电子芯片相比,光子计算芯片在延迟、计算容量和能效上都有数量级的提升,有望解决当前无人机系统的计算瓶颈。

YUNZHUO666的博客 1404

JavaScript设计模式快速参考指南

在这个示例中,我们创建了一个简单的类产品,其他类可以通过 register() 方法观察注册的变化,而当某个对象更新时,notifyAll() 方法将与所有观察者交流这些变化。在本例中,我们创建了一个简单的模板方法来计算税金,并在增值税和消费税(税金类型)中扩展了该模板,这样我们就可以在多个税金类中重复使用相同的结构。在这个示例中,我们创建了一个简单的迭代器,它将包含一个数组中的元素,使用 next() 和 hasNext() 方法,我们可以遍历所有元素。复合模式允许创建具有原始项或对象集合属性的对象。

极道Jdon的技术博客 296

【图像超分】论文复现:新手入门!Pytorch实现SRCNN,数据预处理、模型训练、测试、评估全流程详解,注释详细,简单修改就可以训练你自己的图像数据,有训练好的模型下载地址,随取随用

【图像超分】论文精读:Image Super-Resolution Using Deep Convolutional Networks(SRCNN)请配合上述论文精读文章使用,效果更佳!图像超分辨率SRCNN和FSRCNN复现代码,除基本的网络实现外,还有特征图可视化,PSNR曲线图可视化,测试自己的图像数据等不想理解原理,希望直接跑通然后应用到自己的图像数据的同学,请直接下载上面的代码,有训练好的模型,直接用即可。具体使用方式见代码中的README!有问题来本文评论区留言!准备数据集,以及数据预处理。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 2万+

12.2 数据库设计模式

数据库设计模式是指在数据库架构和设计过程中,针对特定问题或需求采用的通用解决方案。这些模式基于多年的实践经验,可以帮助设计者高效地解决数据库设计中的常见问题。数据库设计模式是一套被广泛认可和重复使用的解决方案,用于解决在数据库设计过程中遇到的常见问题。它们通常包括一组设计原则、最佳实践和标准流程,用于指导数据库的结构设计、数据组织和访问策略。结构设计:涉及如何组织数据模型,包括实体、属性和关系的定义。数据组织:关注数据在数据库中的存储方式,以及如何优化数据的存储和检索。访问策略。

Python老吕的博客 1134

096、PCIE环回模式(Loopback):调试时自己和自己对话的利器

摘要: PCIE环回模式是调试利器,通过让芯片内部数据自环来定位问题层级。文章详解三种环回模式:物理层环回验证基础收发,数据链路层环回测试DLLP机制,事务层环回验证端到端协议。分享了实战中的典型问题(时钟异常、状态机卡死、计数器失真)和"从下往上"的调试流程,强调要区分调试与生产功能,建议早期验证环回模式。通过具体代码示例和调试案例,说明合理使用环回模式能显著提升排查效率,是PCIE调试必备技能。(149字)

z534437748的博客 105

SAP 生产订单归档简介

通常在使用了几年的SAP后,系统中会产生非常多的数据在系统中,特别是制造业的生产订单,常年的累积会存在很多的订单在系统中,这个时候就可以使用归档的功能,对生产订单进行处理。标记DLFL的前提是需要完成生产订单的差异结算,DLFL标记可以清除掉生产订单的相关需求和预留。6、在执行CO78选择删除,前面的操作相当于我们把需要归档的数据写入了数据库中,现在正式进行数据的归档删除。然后我们co03在去看生产订单,可以看到生产订单中多了删除的状态和标记的状态。我这里直接执行的程序PPARCHP1,效果其实是一样的。

我小时候很黑的博客 2284

设计模式小结(12种)

 12种设计模式的快速参考收藏新一篇: 调查在优快云混的IT朋友是否科班出身的结果 | 旧一篇: 大家看看此文和我有啥关系?国产数据库厂商紧密联手 打造基础软件自主品牌function StorePage(){d=document;t=d.selection?(d.selection.type!=None?d.selection.createRange().text:):(d

normallife的专栏 823

【架构】-- StarRocks 和 Doris 介绍与选型建议

查询性能 | ✅ 高性能,支持向量化执行和 CBO 优化器 | ✅ 高性能,优化的查询引擎 |- **实时性要求高**:如果业务对数据的实时性要求较高,建议选择 **StarRocks**,其在实时数据处理和低延迟查询方面表现优越。- **复杂查询需求**:对于需要处理复杂多表关联查询的场景,两者均可胜任,需根据具体性能测试结果进行选择。

欢迎来到我的博客,一起探索代码里的世界! 1831

Java多线程编程终极指南:12个设计模式实战解析

Java多线程编程是每个开发者必须掌握的核心技能,特别是在当今多核CPU普及的时代。本项目《Java多线程编程实战指南(设计模式篇)》源码提供了完整的Java多线程设计模式实现,帮助开发者轻松应对复杂的并发编程挑战。🚀 ## 📚 项目概述 这个Java多线程编程项目是国内首部专注于多线程设计模式的原创作品,涵盖了从基础概念到高级实战的完整知识体系。通过12个精心设计的多线程模式,开发者可以

gitblog_00025的博客 476

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Windows 12网页版终极体验:零基础快速上手完整指南

还在为无法体验最新操作系统而烦恼吗?现在,无需任何技术基础,直接在浏览器中就能完整感受Windows 12的魅力。这个开源的网页项目完美还原了下一代操作系统的视觉设计和核心功能,让你提前走进未来数字世界。 ## 🤔 新手用户最关心的核心问题 **Windows 12网页版到底是什么?** 这是一个基于现代Web技术构建的在线操作系统模拟器,采用HTML5、CSS3和JavaScript实现完

gitblog_00340的博客 961

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

导学《Java设计模式宝典:从入门到精通》

在本篇文章中,我将带领大家系统地学习Java设计模式,从基础到进阶,全面解读每种设计模式的核心概念及实际应用。文章以《黑马程序员Java设计模式详解》为基础,结合精心编写的代码示例,帮助读者掌握设计模式的实际应用。同时,参考经典书籍《设计模式:可复用面向对象软件的基础》,提供更加深入的理论支持。

程序员-杨胡广的博客 2176

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

终极设计模式指南:如何快速掌握软件开发架构精髓

设计模式是软件开发中应对常见问题的通用解决方案,它们是经过验证的最佳实践,能够帮助开发者构建更健壮、可维护和可扩展的系统。GitHub推荐项目精选(aw/awesome-design-patterns)是一个精心策划的资源集合,汇集了与软件和架构相关的设计模式,为新手和专业开发者提供了全面的学习参考。 ## 为什么设计模式对软件开发至关重要 🚀 设计模式不仅仅是代码模板,更是解决特定问题的思

gitblog_00350的博客 803

实效程序员快速参考指南

 《The Pragmatic Programmer:From Journeyman to Master》本文章是从《程序员修炼之道》选摘的。Andrew Hunt &David Thomas 著马维达 译本书为网易、趋势科技等公司新员工技术培训首选用书风云、邹飞、霍炬、徐宥、赵钟秋写书评推荐 1.关心你的技艺 care about

Chatopera 1143
上一篇: 大家看看此文和我有啥关系?国产数据库厂商紧密联手 打造基础软件自主品牌
下一篇: 调查在优快云混的IT朋友是否科班出身的结果
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 18
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值