菜鸟学习 设计模式——行为模式(一)

行为模式:是从大量实际行为中概括出来作为行为的理论抽象、基本框架或标准。

在设计模式中,行为模式是最多的一种类型模式,总共有11中模式,我分两篇博客总结一下。

一,策略模式(Strategy):

1,定义:它定义了算法家族,分别分装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。

2,基本结构:

3,总结:

策略模式是一种定义一系列算法的方法,从概念上看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的看法,减少了各种算法类与使用算法类之间的耦合。

优点:层次为Context定义了一系列的可供重用的算法或行为。继承有助于析取出这些算法的功能。

4,应用举例:商场促销

二,模版方法模式(TemplateMethod):

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

2,基本结构:

3,总结:模版方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。当不变的可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们可以通过模版方法把 这些行为搬到单一的地方,这样就帮助子类摆脱重复的不变的行为的纠缠。

4,应用举例:抄试卷做题

三,状态模式(State):

1,定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

2,基本结构:

3,总结:

状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当一个对象的行为取决于它的状态,并且它必须在运行时刻根基状态改变它的行为时,就可以考虑使用状态模式。

4,应用举例:不同工作状态描述

四,备忘录模式(Memento)

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

2,基本结构:

3,总结:很多情况下我们会用到复原,恢复的功能,这时候备忘录模式就起到作用了。

4,应用举例:游戏进度的保存

五,命令模式(Command):

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

2,基本结构:

3,总结:优点,1,它能较容易的设计一个命令队列;2,在需要的情况下,可以较容易的将命令记入日志;3,允许接收请求的一方决定是否要否决请求;4,可以容易实现对请求的撤销和重做;5,由于加进新的具体命令类不影响其他的类,因此增加新的具体命令很容易。

4,应用举例:烤羊肉串,玉皇大帝通过太白金星邀请孙悟空上天。

2026年GESP3月认证C++五级真题解析 因为要合并成升序数组,所以当A[i]小于等于B[j]时,取A[i],否则取B[j]。当a[i]>a[j]时,左边数组中从i到m的所有元素都大于a[j],因此逆序对数量增加m-i+1。给定一个包含n个互不相同的正整数的数组A与一个包含m个互不相同的正整数的数组B,请你帮忙计算有多少个数在数组A与数组B中均出现。下面代码实现两个整数除法,其中被除数为一个“大整数”,用字符串表示,除数是一个小整数,用int表示,则横线处应该填写()。且a[i] > a[j],则a[i]和a[j]是一个逆序对。 阅读详情

相关推荐

国科GK7202V300芯片开发避坑指南:从uboot编译到SDK配置的12个实战问题解决

本文针对国科GK7202V300芯片开发过程中的常见难题,提供从uboot编译、SDK配置到系统部署的实战解决方案。详细解析了开发环境搭建、内核编译、驱动模块加载、根文件系统构建及烧写部署等12个关键环节的避坑指南,帮助开发者高效解决编译错误、配置冲突等典型问题,提升开发效率。

sunny的博客 234

Java设计模式

设计模式 参考:菜鸟教程 单例模式 保证在同一个进程只拥有一个实例 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 实现: 持有一个该例的全局静态变量 public static Earth earth; 将构造方法私有 private 创建外部调用方法返回实例 饿汉式:线程安全,但是在类加载时就初始化,浪费内存,容易产生垃圾对象 pub......

weixin_41802023的博客 1438

[华为ensp]双核心的园区网

(给部分只会emm......借鉴的朋友提个醒,在group-member e0/0/2 to e0/0/20是所选,所以到了p l t那会给2-20端口都配置上trunk,别紧张,不是你问题)完成上述配置后,PC1可以ping通HTTP2服务器,Client1可以访问HTTP2服务器的HTTP站点,如果不能就要检查上述是否正确。本次实验主要目的是采用双核心的冗余网络,采用MSTP和VRRP技术,在核心层交换机上配置SC1上配置OSPF协议。SC1交换机上配置VRRP。在SC1上配置DHCP。

2301_78859499的博客 1416

最全23种设计模式详解(一)

一、UML 1.1 UML的定义 UML:统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。 1.2 UML的作用 (1)为软件系统建立可视化模型。 UML符号具有良好的语义,不会引起歧义;基于UML的可视化模型,使系统结构直观、易于理解;使用UML进行软件系统的模型不但有利于系统开发人员和系统用户的交流,还有利于.

且视他人之疑目如盏盏鬼火,大胆走吾之夜路! 3875

ADAS系统架构与核心功能解析:从感知到执行的智能驾驶方案

高级驾驶员辅助系统(ADAS)是现代汽车智能化的核心技术,其本质是通过传感器融合、算法决策与车辆控制,构建一个“感知-决策-执行”的闭环系统。在技术原理上,ADAS依赖摄像头、毫米波雷达、激光雷达等多源传感器进行环境感知,并通过深度学习模型与融合算法(如卡尔曼滤波)构建精准的环境模型。其技术价值在于提供主动安全冗余与驾驶舒适性,核心应用场景包括自动紧急制动(AEB)、自适应巡航(ACC)及车道保持辅助(LKA)等。随着传感器成本下降与域控制器算力提升,ADAS正从高端配置向主流车型快速普及,并逐步向高阶导航

weixin_31062533的博客 414

Mac版UltraEdit 18.00.0.19破解教程:终端一行命令搞定(附版本适配指南)

本文为Mac用户提供了UltraEdit的合法替代方案与授权指南,强调破解软件的法律风险和安全隐忧。推荐使用VS Code、Sublime Text等开源或商业编辑器,结合终端工具如Vim/Neovim,实现高效文本编辑。同时详细介绍了UltraEdit的官方授权选项,帮助开发者在遵守软件许可的前提下提升工作效率。

k9l0m1的博客 353

RestTemplate调用请求方式为PATCH的接口

问题描述 使用 RestTemplate 调用请求方式为PATCH的接口时,报如下错误: java.net.ProtocolException: Invalid HTTP method: PATCH 原因分析 RestTemplate工厂类(ClientHttpRequestFactory)的默认实现中,不支持使用PATCH方法。 解决办法 在创建RestTemplate对象时,通过构造方法,将RestTemplate配置类的工厂对象修改为HttpComponentsClientHttpRequestFa

随风飘雁 5043

PCL RANSAC拟合分割多条直线【2026最新版】

使用RANSAC算法拟合分割多条直线,输出每一条直线的拟合参数到控制台,并保存直线点云到本地文件夹。博客长期更新,本文最新更新时间为:2026年5月24日。

点云侠的博客 7974

菜鸟学习 设计模式——行为模式(一)

行为模式:是从大量实际行为中概括出来作为行为的理论抽象、基本框架或标准。            在设计模式中,行为模式是最多的一种类型模式,总共有11中模式,我分两篇博客总结一下。            一,策略模式(Strategy):          1,定义:它定义了算法家族,分别分装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。

三生三世的博客 661

AutoSAR配置与实践(实践篇)11.1 如何通过IPDU分组控制报文收发

注意这个新增的action其实是一个用户回调函数,在函数中进行配置字的判断,即可完成用户条件的判断(TRUE/FALSE),注意用户条件是用户封装的函数,用于输入给后续的逻辑判断和rule。进行PDU的拆分后,根据配置字可以选择PDU是否使能了。PDU组拆分后可分为常规PDU组和可配PDU组(新增),诊断一方面按原有逻辑控制常规PDU组,另一方面控制新的可配PDU组。举例说明,诊断场景:使能,配置字满足,则用户条件为TURE,表示期望使能可配PDU组(诊断禁止服务场景类似方式,在此不再列举)。

nihaoljq2010的博客 833

锂电池充放电管理-单片机通用模版

- **①两节锂电池通过电阻分压检测ADC,再根据电压划分电量等级;** - **②充电使用的是锂电池充电IC方案,可通过硬件电阻参数调节充电电流,并可以通过STAT引脚检测充电和满电状态(充电注意会抬高电压);** - **③放电根据ADC_BAT检测电池电量进行等级划分(注意大负载电压骤降瞬间);** - **④充放电过程注意在电量划分等级临界值来回抖动现象;**

a6662580的博客 1488

Java之美[从菜鸟到高手演变]之设计模式

很简单,一个原型类,只需要实现Cloneable接口,覆写clone方法,此处clone方法可以改成任意的名称,因为Cloneable接口是个空接口,你可以任意定义实现类的方法名,如cloneA或者cloneB,因为此处的重点是super.clone()这句话,super.clone()调用的是Object的clone()方法,而在Object类中,clone()是native的,具体怎么实现,我会在另一篇文章中,关于解读Java中本地方法的调用,此处不再深究。本小结会通过对象的复制,进行讲解。

智慧演绎,无处不在 47万+

全网详细解决:无法将 “xxx” 项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次

全网详细解决:无法将 “xxx” 项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

念兮为美 5万+

Java[从菜鸟到高手演变]之设计模式 一

很简单,一个原型类,只需要实现Cloneable接口,覆写clone方法,此处clone方法可以改成任意的名称,因为Cloneable接口是个空接口,你可以任意定义实现类的方法名,如cloneA或者cloneB,因为此处的重点是super.clone()这句话,super.clone()调用的是Object的clone()方法,而在Object类中,clone()是native的,具体怎么实现,我会在另一篇文章中,关于解读Java中本地方法的调用,此处不再深究。本小结会通过对象的复制,进行讲解。

u014112513的博客 1917

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

设计模式DesignPattern【1】

设计模式是对于反复出现的问题的解决方案,是关于如何解决某些问题的指南。它们不是可以插入应用程序中的类、包或库。相反,这些是关于如何在某些情况下解决某些问题的指导方针,是一种思想方面的东西。设计模式是软件设计中常见问题的典型解决方案。它们就像预制的蓝图,你可以对其进行自定义以解决代码中反复出现的设计问题。

2301_80272161的博客 1106

数学建模模型总结

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

菜鸟的java设计模式学习总结

菜鸟的java设计模式学习总结说明一、单例模式二、工厂模式三、代理模式(1)基于子类的动态代理(2)基于接口的动态代理四、适配者模式(1)对象实例适配器(2)类适配器五、建造者模式 说明 更新时间:2020/10/12 02:41,更新到了建造者模式 之前学的java的常见设计模式,一直都没有时间整理出来,本文现对这些常见的设计模式进行一次总结与记录,本文会持续更新,不断地扩充 注意:本文仅为记录学习轨迹,如有侵权,联系删除 一、单例模式 单例模式是比较常见的设计模式,在很多的主流框架中也有使用,之前在网上

最强菜鸟 1395

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

菜鸟学习设计模式①单例模式

单例模式 一、何为设计模式 在软件开发过程中,总会遇到各种各样的问题,而设计模式就是众多开发者在实践中总结出来的解决一般性问题的方案。 设计模式可分为三大类,分别是创新型模式(creational)、结构型模式(structural)和行为型模式(behavioral) 二、单例模式 **描述:**单例模式属于创建型模式,是java中最简单的设计模式之一。在创建单例类时,同时创建自己的对象,再提供访问此对象的唯一方式。使用此对象时,可以直接访问,不需要实例化。保证一个类仅有一个实例,并提供一个访问它的全局访

as_lover的博客 464

菜鸟学习设计模式的心得

【真的有那么难吗】 菜鸟学习设计模式真的很难吗,其实很难,我发现我这个项目已经开了两个月了,好艰难,原先只是在看,并没有过脑子,现在突然间发现这些是可以串起来的,原来还是如此的简单,每一个例子的故事也没有这么难记,这里也感谢一下勇杰,我验项目之前帮助我突破了几个设计模式,还要感谢我的师傅们,在验收项目时,给我拓展了一些知识,慢慢的学吧,怎么以后重构还会用到这些...

张伟光 1301

菜鸟学习 设计模式——行为模式(2)

接上上篇,来总结行为模式的剩余六个.        六,观察者模式(Observer):         1,定义:定义了一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。         2,基本结构图:            3,总结:          当一个对象的改变需要同时改变其他对象

学会改变自己——才能突破 2656

Java之美[从菜鸟到高手演变]之设计模式一

设计模式(Design Patterns)                                   ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真

将来的你一定会感谢现在努力的自己 765

Java之美【从菜鸟到高手演变】之设计模式一

设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设...

dengyinglinganh的博客 350

设计模式学习路线

其中第一个阶段和第二个阶段,即对于每个设计模式的学习都是:先了解、再编码实现。

m0_56653160的博客 1522

23个设计模式总结(1)——高手与菜鸟的区别

跟着“小菜”和“大鸟”学习设计模式二十天了,可能是之前学习了C和C#,加上全职学习了四十四天的英语,对于设计模式源码的理解相对于以前刚接触编程的时候容易多了。 学习完了设计模式,以下是我对其的浅显总结: 我把设计模式分成了三类:创建型、结构型和行为型,这三种类型主要是侧重点不同: 1.创建型: 隐藏类的实例是如何被创建的,使系统更加灵活。 2.结构型: 注重的是如何管理各个类之间的关系

搬砖工 2059

设计模式学习之旅(一)——基于菜鸟教程

北北的博客 850

菜鸟学习 设计模式——结构型

前边我们简单总结了设计模式中的创建型,这篇博客我们来总结结构型的七种模式。结构型就是借由一以贯之的方式来了解元件间的关系,以简化设计。         一,装饰模式(Decorator):           1,定义:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。           2,结构:           3,总结:装饰模式是为已有功能动

学会改变自己——才能突破 2866
上一篇: android开发问题(二)解决ScrollView加入后无法执行OnGestureListener的监听函数
下一篇: ArcSDE常用命令之sdemon
piperzero
博客等级 码龄21年 1377粉丝 504原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值