三个月文章积累后的设计模式之状态机总结

本文总结了作者在三个月内积累的设计模式——状态机的知识,包括状态机的概念、用途、好处及实现方式。状态机是一种将现实世界问题抽象为数学模型的工具,用于简化复杂逻辑,提高代码可读性和程序健壮性。文章探讨了状态机的实现,如结构体数组和函数指针,并指出理解和区分状态与动作的重要性。
摘要由CSDN通过智能技术生成

目录

为什么要写这篇

状态机粗浅认识

为什么会有状态机

关于状态机有什么用途

用了状态机有什么好处

状态机好学会吗

关于状态机实现方式

关于一对一关系的拓展

状态机相关文章列表


为什么要写这篇

关注了一些微信公众号,推送的文章中提到了一个概念:状态机,当时本着收藏,等到想看的时候再看的想法,就这么一点点积累,等到后来意识到这个概念相关文章已经攒了6篇,后来很少看到相关文章了,而这个概念还没学会,又了解到这个和设计模式有关,设计模式和面向对象编程息息相关。

收藏第一篇关于状态机的文章到开始写这篇博客,整整三个月了,想想都觉得自己的拖延症。。。

状态机粗浅认识

状态机是一个抽象的概念,因此通过代码表达出来形式多种多样,那怎么算是状态机,就像什么是链表,栈和队列一样。

状态机是有限状态自动机(FSM)的简称,是现实事物运行规则抽象而成的一个数学模型。

有限状态自动机FSM,有限状态,它的状态是有限的。自动,给定一个状态机,同时给定它的当前状态以及输入,那么输出状态是可以明确的运算出来的。可以理解到状态机相关的概念中肯定有两个概念:输入状态(当前状态),输出状态(下一个状态)。

到这儿为止感觉和编程还没有多大关联,只是觉得和逻辑门电路(与门,或门,非门等)有一些相似,

为什么和编程还没什么关系呢?程序 = 数据结构 + 算法。 状态机是个抽象的概念,链表也是个抽象的概念,链表需要用一种结构来表示,状态机也需要一种结构来表示,数据结构就有了。链表需要提供操作接口,主要的就是增 、删、改、查,初始化和清空。这些操作接口的实现方法就属于算法。状态机同样需要提供操作接口,操作接口的实现也属于算法呀。

对于单片机编程从某种层面来说可以粗略地理解为传感器采集发生了哪些事件,然后做了相应处理动作。

明白了这些大致就了解状态机是什么了。相关的概念就是四个:当前的状态(逻辑状态输入),发生的事件(单片机输入),执行的功能函数(单片机输出),下一个状态(逻辑状态输出)

我联想到“黑盒”和“模块化”:状态机是个黑盒,给它确定的输入,就会有对应的输出。状态机可以看作是个模块,与硬件关联不大,可以写成独立的模块文件,方便移植。

我认为状态机的作用是为了得到输出,输出有两个,执行功能函数下一个状态下一个状态 <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值