设计模式笔记

CTF实战:从ECDSA签名漏洞到flag获取 本文详细解析了ECDSA签名算法在CTF比赛中的实战应用,重点探讨了随机数重用和参数泄露等常见漏洞。通过PWNHUB六月赛的例题,展示了如何从签名数据中恢复私钥并获取flag,同时提供了防御措施和实战技巧,帮助参赛者提升解题能力。 阅读详情

设计模式笔记

这个只能理解记忆,很多时候有些结构容易记混淆,结合例子记忆会好些,记录一篇方便以后回来看看哈哈哈

分为三种类型:

一、创建型模式

创建型模式提供了创建对象的机制,能够提升已有代码的灵活性和可复用性。

工厂方法

工厂方法是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。

在这里插入图片描述
在这里插入图片描述
==== 在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例:=================================================================
以下示例演示了如何使用工厂方法开发跨平台 UI(用户界面)组件,并同时避免客户代码与具体 UI 类之间的耦合。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
适合应用场景:
当你在编写代码的过程中,如果无法预知对象确切类别及其依赖关系时,可使用工厂方法。
如果你希望用户能扩展你软件库或框架的内部组件,可使用工厂方法。
如果你希望复用现有对象来节省系统资源,而不是每次都重新创建对象,可使用工厂方法。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

抽象工厂

抽象工厂是一种创建型设计模式,它能创建一系列相关的对象,而无需指定其具体类。

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

生成器

生成器是一种创建型设计模式,使你能够分步骤创建复杂对象。该模式允许你使用相同的创建 
代码生成不同类型和形式的对象。

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

原型

原型是一种创建型设计模式,使你能够复制已有对象,而又无需使代码依赖它们所属的类。

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

单例

单例是一种创建型设计模式,让你能够保证一个类只有一 个实例,并提供一个访问该实例的全局节点。

在这里插入图片描述

二、结构型模式

结构型模式介绍如何将对象和类组装成较大的结构,并同时保持结构的灵活和高效。

适配器

适配器是一种结构型设计模式,它能使接口不兼容的对象能够相互合作。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例:==================================================================

在这里插入图片描述
适配器假扮成一个圆钉 (RoundPeg), 其半径等于方钉(SquarePeg)横截面对角线的一半(即能够容纳方钉的最小外接圆的半径)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

桥接

桥接是一种结构型设计模式,可将一个大类或一系列紧密 相关的类拆分为抽象和实现两个独立的层次结构,从而能在开发时分别使用。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例:==============================================================
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

装饰

装饰是一种结构型设计模式,允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。

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

代理

代理是一种结构型设计模式,让你能够提供对象的替代品 或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。

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

三、行为模式

行为模式负责对象间的高效沟通和职责委派。

迭代器

迭代器是一种行为设计模式,让你能在不暴露集合底层表现形式(列表、栈和树等)的情况下遍历集合中所有的元素。

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

观察者

观察者是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个“观察”该对象的其他对象。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果你的应用中有多个不同类型的发布者,且希望订阅者可兼容所有发布者,那么你甚至可以进一步让所有订阅者遵循同样的接口。该接口仅需描述几个订阅方法即可。这样订阅者就能在不与具体发布者类耦合的情况下通过接口观察发布者的状态。
在这里插入图片描述
在这里插入图片描述
示例:================================================================
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模板方法

模板方法是一种行为设计模式,它在超类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上只记录了几个经常用的,后面再慢慢添加!

【参考资料】书籍:深入设计模式(见下方云盘链接)
【资源分享】链接:https://pan.baidu.com/s/1YDGaVxgSk4h5aOWyD4Dtig
提取码:xanh

STM32F4实战:手把手教你实现USB OTG双模式切换(Host/Slave) 本文详细介绍了如何在STM32F4上实现USB OTG双模式切换(Host/Slave),包括硬件架构解析、软件实现机制、主机模式下的U盘读写以及从机模式下的自定义设备开发。通过实战案例和优化技巧,帮助开发者快速掌握USB双角色功能,提升嵌入式系统开发的灵活性和效率。 阅读详情

相关推荐

智能解决装箱问题:使用优化算法实现高效包装

装箱问题(Bin Packing Problem)是组合优化领域中的一个经典问题,主要涉及如何将一系列对象高效地装入有限数量的容器(或“箱”)中,同时满足特定的约束条件。这个问题的目标是最小化所需使用的箱子数量或者最大化箱子的装载效率,以减少空间或资源的浪费。

MindOpt_003的博客 5548

软件设计模式:创建型,结构型,行为型模式

1.创建型 工厂方法 抽象工厂 建造者 单例 原型 结构型 适配器 代理 装饰器 外观 桥接 组合 享元 1.创建型 1.1 工厂方法 每一种产品提供一个工厂类(1对1) 1.2抽象工厂 多产品,多工厂(1对多),比如说,每个汽车公司可能要同时生产轿车,货车,客车,那么每一个工厂都要有创建轿车,货车和客车的方法。 区别 简单工厂 : 用来生产同一等级...

weixin_45617356的博客 4067

告别色差!用Python+TCS34725颜色传感器实现精准色彩还原(附完整校准代码)

本文详细介绍了如何利用Python和TCS34725颜色传感器实现专业级色彩还原方案。通过双阶校准法(白光校准和黑电平校准)和进阶的光照自适应技术,解决传感器原始数据不准的问题,并提供完整的校准代码和实战案例,帮助开发者实现ΔE<3的高精度色彩识别。

weixin_30836759的博客 209

【设计模式】三大类:创建型模式、结构型模式、行为型模式

1 创建型模式 本人理解:以C++为例,创建对象时,用关键字new来创建(实例化)对象。用一个函数或类将new的过程封装起来,就是创建型模式。 《设计模式》中的描述: 创建型模式抽象了实例化过程。它们帮助一个系统独立于如何创建、组合和表示它的那些对象。 一个类----创建型模式使用继承改变被实例化的类, 一个对象-创建型模式将实例化委托给另一个对象。 (看后,一头雾水) 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton

郭老二 5846

TCMSP数据库+R语言实战:从网页爬虫到中药-靶点网络图的全流程解析

本文详细解析了如何使用R语言从TCMSP数据库抓取中药-靶点数据,并通过数据清洗、网络分析和可视化构建完整的中药作用机制研究流程。涵盖动态网页爬虫、ADME参数筛选、网络图构建及高级可视化技巧,为中医药现代化研究提供实用的生物信息学方法。

weixin_31304817的博客 337

C#菜鸟教程学习笔记

C#菜鸟教程学习笔记 C#简介 C# 是一种编程语言,它是由微软开发的。 C# 编程是基于 C 和 C++ 编程语言的,它与 Java 也非常相似。 C# 是 .Net 框架的一部分,且用于编写 .Net 应用程序。 .Net 框架(.Net Framework)能编写出下面类型的应用程序: ①Windows 应用程序 ②Web 应用程序 ③Web 服务 常用的C# 编程的开发工具:Visual Studio(VS:可视化工作室) C#程序结构 一个 C# 程序(C# 文件的后缀为 .cs)主要包括以下部分

mlc_WTMOTW的博客 4978

23种设计模式(创建型、构造型、行为型)

Builder 模式适用于:当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。想定制一个分布在多个类中的行为,而又不想生成太多的子类。定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并 被自动更新。:简单工厂模式的创建目标,所有被创建的对象都是某个具体类的实例。定义:定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。:工厂类所创建的所有对象的父类,封装了产品对象的公共方法,所有的具体产品为其子类对象。

qq_52108058的博客 2473

超融合架构实战:如何用3节点搭建企业级分布式存储系统?

本文详细介绍了如何利用3节点搭建企业级分布式存储系统的超融合架构实战指南。从硬件选型、网络配置到存储策略调优,提供了全面的实操建议和性能优化技巧,帮助企业实现高效、弹性的IT基础设施。特别适合需要简化运维、提升存储性能的中型企业参考。

weixin_29200485的博客 326

设计模式:创建型、结构型、行为型

设计模式:创建型、结构型、行为型

风不归的乐园 2489

某Z节验证码

某Z节验证码、captchaBody、滑块、旋转、空间推理

mamenqi_csdn的博客 773

3 路由引入

在大型企业网络中,网络规模十分庞大,选用单一的路由协议无法满足网络的需求,因此多种路由协议共存的情况十分常见。或者出于业务逻辑或行政管理的考虑,会在不同的网络结构中设计和部署不同的路由协议,使路由的层次结构更加清晰可控。路由引入是具有方向性的,将路由信息从路由协议A引入到路由协议B(A-to-B),则路由协议B可获知A中的路由信息,但是此时,A还并不知晓B路由协议中的路由信息,除非配置B-to-A的路由引入。表3-1:各种路由协议的优先级。通过路由引入,可以实现路由信息在不同路由协议间传递。

lwljh134的博客 621

设计模式三大分类-创建型、结构型、行为型

一、创建型: 创建型模式,就是创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。关注的是对象的创建,创建型模式将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,而不再关心创建对象过程中的逻辑。 创建型 简单工厂模式 严格意义来说,不属于GOF23种设计模式 工厂方法模式 只对结果负责,封装创建过程 抽象工厂模式 - 原型模式 拔一根猴毛,吹出千万个。 单例模式 单例和原型是互斥的 保证

weixin_39069034的博客 2446

汇川H5U PLC通过EtherCAT总线控制SV660N和X3E伺服

首先我们看下系统硬件和软件配置:汇川H5U PLC的编程软件是:AutoShop V4.6.3.0 硬件:PLC H5U-1614MTD-A16,汇川伺服型号:SV660NS1R6I 电机型号:MS1H1-10B30CB 100W 220V 3000R/M 0.32N*M 1.3A,禾川伺服驱动器型号:SV-X3EB075A-A2 伺服电机型号:SV-X2MH075A-N2LA。

RXXW_Dor的博客 2万+

《设计模式Design Pattern》读书笔记之十八

《设计模式Design Pattern》读书笔记之十八State模式结构 目的当一个对象(context)根据当前本身的状态(state),会产生不同的行为的时候,可以采用state模式。把所有跟改状态相关的行为/动作转移到一个外部的state对象中。这样,可以避免context内部大量的switch.if等判断。 优缺点带来更大的灵活性和可维护性,因为一个新的状态可以很容易地通过派生一个类来追加

Jadyleung的专栏 1638

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

《设计模式Design Pattern》读书笔记之十

《设计模式Design Pattern》读书笔记之十Facade模式结构 目的为一个复杂的子系统(sub-system)提供一个简单的接口,可以满足大部分用户的要求,这样可以简化用户对该子系统的理解和使用,也可以降低各个自系统之间的耦合度。只有极少部分用户需要绕过Façade,直接使用子系统的各个组成部分。  参考资料《Design Pattern》  Gang-Of-4  1997

Jadyleung的专栏 1323

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

《设计模式Design Pattern》读书笔记之十六

《设计模式Design Pattern》读书笔记之十六Memento模式结构 目的为了可以把一个对象恢复到以前的状态,却不想公开内部状态使得封装性被破坏。 优点1,  通过把originator的内部状态保存到memento,而不是直接把内部状态公开,保持了originator的封装性。因为memento有两种接口,宽(wide)的接口只会被originator使用,使得别人不能访问这些内部状态。

Jadyleung的专栏 1386

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

《设计模式Design Pattern》读书笔记之一

     《设计模式Design Pattern》读书笔记之一      本书所使用到的符号(Guide To Notation) 《Design Pattern》这本书虽然有时候也使用一些非正式的图来表明自己的思想,但在设计模式中表示类/对象之间的关系时,使用规范的图。可能我的书版本比较老一些的缘故?它使用的图并不是基于UML,而是基于UML的前身。类图(class diagram)、对象图(o

Jadyleung的专栏 1925

《设计模式Design Pattern》读书笔记之十七

《设计模式Design Pattern》读书笔记之十七Observer模式结构 目的在一个一对多(one-to-many)的关系中,当一个对象(one)的状态被更新的时候,它的所有的相关对象(many)都会被得到通知。 讨论1,  可能会带来很大的状态更新成本,subject的一个很小的状态更新都可能使得大量的observer进行相应的更新。更为严重的是,如果subject不提供是什么状态被更新了

Jadyleung的专栏 1452

《设计模式Design Pattern》读书笔记之九

《设计模式Design Pattern》读书笔记之九Decorator模式结构 目的动态地给一个对象增加功能(responsibilities)。 讨论1, 给一个对象增加功能,最简单的方法是派生一个类;但这是一种静态的方法,不灵活。而Decorator是一种动态的方法,比较灵活。2, 对于一个轻量型的component,Decorator模式是一种比较好的方法,但如果component是重量型的

Jadyleung的专栏 1341

《设计模式Design Pattern》读书笔记之八

《设计模式Design Pattern》读书笔记之八Composite模式目的在一个part-whole的继承结构中,把整体(composition)和个体(object,component) 统一地对待。这样,对client来说,不用区别是整体还是个体,都可以进行同样的操作。 结构 讨论1, 一个缺点是给限制composite中的component带来困难。2, 有时候增加一个parent re

Jadyleung的专栏 1235

《设计模式Design Pattern》读书笔记之十五

《设计模式Design Pattern》读书笔记之十五Mediator模式结构 目的为了减少大量的对象(colleague)之间互相通信的复杂性,创建一个中间人--mediator(类似于HUB);这样,各个colleague只要建立跟mediator之间的联系,而不需要直接跟各个colleague直接连接。各个colleague之间的通信完全通过mediator进行处理。 优点1,  Media

Jadyleung的专栏 1501

《设计模式Design Pattern》读书笔记之二十

《设计模式Design Pattern》读书笔记之二十Template Method模式结构 目的在父类定义一个算法的框架,而可以让改算法中的每个步骤在子类中实现。这样,子类可以随意修改算法中的某个具体步骤,但整个算法的结构没有发生改变。 讨论1,  PrimitiveOperation可以是纯虚函数;或者仅仅是一个虚拟函数,父类提供一个缺省的实现。2,  PrimitiveOperation可以

Jadyleung的专栏 1437

《设计模式Design Pattern》读书笔记之七

《设计模式Design Pattern》读书笔记之七Bridge模式别名Handle/Body 结构  目的在接口(interface/abstraction)与实现(implementation)之间,建立一条桥梁。从而使得,1,  很容易地为该接口提供不同的实现2,  接口可以很容易被扩展(派生)而与具体实现不相关 与其他模式的联系和区别1, Abstract Factory可以用于创建Bri

Jadyleung的专栏 1270

《设计模式Design Pattern》读书笔记之十三

《设计模式Design Pattern》读书笔记之十三Chain of Responsibility模式结构 目的通过解除消息/请求(request)的发送者与接收者之间的绑定,允许request在一个对象链条中传递,增加request处理的灵活性。当然,一个不可避免的可能性是,该request可能在对象链条中传递到最后都没有被处理。 讨论1, 对于successor;如果没问题的话,可以利用现有

Jadyleung的专栏 1241

《设计模式Design Pattern》读书笔记之十一

《设计模式Design Pattern》读书笔记之十一Proxy模式结构 目的当访问一个对象花费比较大的时候,可以为它生成一个代理(proxy)。 应用remote proxy    远程代理,用本地的一个对象代理远程对象virtual proxy    虚拟代理,只有在需要的时候(on demand)才生成一个代价昂贵的对象protection proxy 保护代理,控制对对象的访问权限smar

Jadyleung的专栏 1427

《设计模式Design Pattern》读书笔记之十二

《设计模式Design Pattern》读书笔记之十二Flyweight模式结构 目的通过共享对象,减少存储空间的消耗 讨论一个对象的状态可以分为内部状态(intrinsic state)和外部状态(extrinsic state)。内部状态是独立于上下文(context)的,外部状态因context而不同。通过把外部状态分离出去,只保存内部状态的对象就是一个flyweight,flyweight

Jadyleung的专栏 1369
上一篇: 面向对象开发基本原则笔记-(理解记忆)
下一篇: Linux系统下海康工业相机MVS二次开发-Python
monkeyhlj
博客等级 码龄9年 1万+粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值