设计模式
文章平均质量分 54
clear code
一路向前,莫问前程,前途似锦
展开
-
C语言实现设计模式—目录
文章目录单例模式命令模式策略模式命令模式+策略模式混合使用责任链模式(事件触发机制)订阅发布模式(订阅者/发布者)记录自己对设计模式的理解和使用。单例模式C语言-单例模式使用https://blog.csdn.net/Set_Mode/article/details/100591193命令模式C语言-命令模式使用策略模式C语言-策略模式使用命令模式+策略模式混合使用C语言-命令模式+策略模式混合使用责任链模式(事件触发机制)C语言-责任链模式订阅发布模式(订阅者/发布者)C语言-原创 2020-08-19 18:04:05 · 2439 阅读 · 0 评论 -
C语言实现设计模式-策略模式+命令模式组合使用
文章目录使用环境介绍使用策略模式使用命令模式使用环境介绍当主设备和从设备使用串口信息交互通讯,根据串口协议,实现对从设备的控制访问。使用情况1:当主设备发送板卡信息获取、读取数据命令时,希望获取从设备的数据信息,从设备应答操作。使用情况2:当主设备发送采集命令时,从设备收到但不进行回复,不应答操作。使用策略模式首先识别命令,对需要进行应答的命令进行判断,区分动作使用命令模式...原创 2020-08-02 11:19:50 · 3211 阅读 · 0 评论 -
【设计模式项目实战】串口协议总线管理模型实现
文章目录功能模型的需求设计思路-UML模型关系图判断方法-是否触发,是否执行功能实现-模块介绍数据类型串口总线对象和接口模块设计串口协议对象和接口设计接口方法添加-数据驱动编程对外提供输出接口总结功能模型的需求设计一款支持多个串口协议模型管理,方便业务的扩展,尽可能的使得模块可以“高内聚低耦合”。设计思路-UML模型关系图将每一个协议的数据方法统一管理起来,采用“模糊对象”判断,即不对具体的协议判断进行判断,将协议对象抽象出来进行管理。判断方法-是否触发,是否执行第一步:检查是哪种协议触发,满原创 2021-12-18 23:46:23 · 2308 阅读 · 0 评论 -
C语言实现设计模式—观察者模式
文章目录C语言实现设计模式—观察者模式观察者模式介绍UML用例说明C语言实现定义触发更新函数接口采集线程等待触发标志更新波形存储标志等待更新C语言实现设计模式—观察者模式观察者模式介绍它就像系统里面某个子模块的跑腿,一旦该子模块发生变化,它就要为这个子模块通知其他的子模块。观察者模式定义:定义对象之间多对一的依赖关系,保证当被依赖的对象发生变化时,所有的依赖者会被自动更新。当一个对象需要通知另外一些对象,而你无法预知哪些对象将被通知时,通过观察者模式,克制减少对象的偶合关系。优点: 1、观原创 2020-08-26 15:17:47 · 3171 阅读 · 0 评论 -
C语言实现设计模式—模板模式
文章目录C语言实现设计模式—模板模式模板模式介绍UML用例说明实际场景使用框架结构[共用框架]—通用的串口协议分析函数不同实现—数据类型区别C语言实现设计模式—模板模式模板模式介绍在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现) 在不同的对象中有不同的细节实现, 但是逻辑(算法) 的框架(或通用的应用算法)是相同的。 Template 提供了这种情况的一个实现框架。优点: 1、封装不变部分,扩展可变部分。 2、提取公共代码,便于维护。 3、行为由父类控制,子类实原创 2020-08-26 10:22:09 · 5481 阅读 · 0 评论 -
C语言实现订阅者/发布者模式-用例
测试用例typedef struct rz_mq_magic_test_def rz_mq_magic_test_t;struct rz_mq_magic_test_def{ rt_thread_t mq_tid; pub_mq_magic_t *pub_mq_magic; sub_mq_magic_t *sub_mq_magic; topic_t pub_topic; topic_t sub_topic; bool (*init)(rz_mq_mag原创 2020-08-19 17:44:06 · 1854 阅读 · 0 评论 -
C语言实现设计模式—订阅者/发布者模式(Pub-Sub Pattern)
文章目录C语言实现订阅者/发布者模式(Pub-Sub Pattern)模式介绍模式的优点订阅者/发布者模式实现节点定义发布者/订阅者接口注册统一调度实现外层接口C语言实现订阅者/发布者模式(Pub-Sub Pattern)模式介绍发布订阅模式中,称为发布者的消息发送者不会将消息直接发送给订阅者,这意味着发布者和订阅者不知道彼此的存在。在发布者和订阅者之间存在第三个组件,称为消息代理或调度中心或中间件,它维持着发布者和订阅者之间的联系,过滤所有发布者传入的消息并相应地分发它们给订阅者。订阅者把自己想订原创 2020-08-19 17:42:59 · 3493 阅读 · 2 评论 -
C语言实现设计模式-实现责任链模式(事件触发机制)
文章目录C语言设计模式-实现责任链模式(事件触发机制)模式介绍UML用例说明模式实现责任链节点定义初始化处理函数注册函数事件推送责任链处理函数调用流程C语言设计模式-实现责任链模式(事件触发机制)模式介绍使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。职责链上的事件处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将事件请求的发送者和请求的处理者解耦了。原创 2020-08-15 16:14:51 · 3300 阅读 · 4 评论 -
C语言设计模式-模板模式
介绍模板方法模式是基于继承的代码复用基本技术,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中。在模板方法模式中,准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来让子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。模板方法模式体现了面向对象的诸多重要思想,是一种使用频率较高的模式。比方说,现在我们...原创 2019-11-12 20:45:45 · 481 阅读 · 0 评论 -
C语言实现设计模式—策略模式
文章目录介绍抽象实现代码模块介绍在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。抽象硬件代理模式使用结构体封装硬件设备,硬件有可能是内存、传感器设备、IO设备等,但无论什么样的设备,硬件代理的作用就是隐...原创 2019-11-12 20:42:46 · 2707 阅读 · 1 评论 -
C语言实现设计模式—命令模式
文章目录参考C语言设计模式——命令模式传统的实现方式如下:(伪代码)参考原文链接:https://blog.csdn.net/wqx521/article/details/93589663C语言设计模式——命令模式好处:让代码清晰明了,容易添加和删除,易维护。哪些地方会用到命令模式?(列出几个常见的例子)1、按键处理,每个按键按下得到一个索引(指的就是命令),一个按键对应一个处理函数。...原创 2019-09-28 21:48:16 · 5302 阅读 · 1 评论 -
C语言实现设计模式—单例模式(Singleton)
文章目录单件模式(Singleton)代码单件模式(Singleton)Singleton就是确保一个类只有唯一的一个实例。Singleton主要用于对象的创建,这意味着,如果某个类采用了Singleton模式,则在这个类被创建后,它将有且仅有一个实例可供访问。代码typedef struct rz_selfcheck_t rz_selfcheck_t;CLASS(rz_selfche...原创 2019-09-07 11:27:14 · 3131 阅读 · 2 评论