[经验分享] 单片机中面向对象的思维

[复制链接]
3669|69
averyleigh 发表于 2025-7-12 19:40 | 显示全部楼层
虽然C语言没有直接支持继承和多态的语言机制,但我们可以通过组合和函数指针来模拟这些概念。
mikewalpole 发表于 2025-7-12 20:50 | 显示全部楼层
复杂状态机、多驱动适配、代码复用需求高的场景
wilhelmina2 发表于 2025-7-12 21:19 | 显示全部楼层
结构体(Structures)‌:用于定义对象的属性,类似于OOP中的类。
函数指针(Function Pointers)‌:用于模拟对象的方法,允许将函数作为结构体的一部分。
模块化设计:将程序分解为独立的模块,每个模块负责一部分功能,类似于OOP中的对象。
hearstnorman323 发表于 2025-7-12 22:05 | 显示全部楼层
在单片机中应用面向对象思维,核心是通过​​结构体模拟类​​、​​函数指针模拟方法​​,实现封装、继承和多态,从而提升代码的模块化、复用性和可维护性。
janewood 发表于 2025-7-12 22:33 | 显示全部楼层
通过封装和继承,可以创建可重用的代码组件,减少重复编码的工作量
gouguoccc 发表于 2025-7-15 09:26 来自手机 | 显示全部楼层
单片机的资源决定了不适用采用面向对象的编程设计方式
绝影孤狼 发表于 2025-7-15 11:13 | 显示全部楼层
非常赞同,面向对象确实可以减少代码冗余,提高代码的可维护性。通过抽象和封装,我们可以将通用逻辑集中处理,针对特定情况只需修改部分函数,这样的设计思路确实很棒。
robertesth 发表于 2025-7-18 11:30 | 显示全部楼层
将数据和操作数据的方法绑定在一起,隐藏内部实现细节。
jtracy3 发表于 2025-7-18 11:58 | 显示全部楼层
在单片机中,可以使用定时器中断来实现时间片轮询,每个任务在自己的时间片内执行,从而实现多任务的并发处理。
pl202 发表于 2025-7-18 12:17 | 显示全部楼层
面向对象的代码通常更容易维护和更新,因为每个对象都是独立的,修改一个对象不会影响到其他对象
olivem55arlowe 发表于 2025-7-18 16:51 | 显示全部楼层
分层设计是将系统划分为不同的层次,每一层负责不同的功能。例如,可以将系统划分为驱动层、应用层和业务层。
jonas222 发表于 2025-7-18 19:03 | 显示全部楼层
对于非常简单的项目,过度设计可能会引入不必要的复杂性。
juliestephen 发表于 2025-7-18 20:34 | 显示全部楼层
过度抽象会导致 “接口层” 过多,调试时难以跟踪
sdlls 发表于 2025-7-18 21:21 | 显示全部楼层
C语言本质上是一种过程式编程语言,并不直接支持面向对象编程
nomomy 发表于 2025-7-18 22:01 | 显示全部楼层
结构体、函数指针等会增加代码大小和RAM使用。在资源极其受限的单片机上需要权衡。
jtracy3 发表于 2025-7-19 10:52 | 显示全部楼层
应该尽量抽象出通用的操作接口               
jimmhu 发表于 2025-7-19 12:05 | 显示全部楼层
时间片轮询是一种任务调度机制,通过将时间划分为多个时间片,每个任务在自己的时间片内执行。这种方法可以实现多任务的并发执行,提高系统的实时性。
hearstnorman323 发表于 2025-7-19 12:40 | 显示全部楼层
通过将数据和操作数据的方法捆绑在一起,限制外部对内部状态的直接访问。在C语言中,可以通过将结构体的具体实现隐藏起来,仅暴露必要的接口给用户。
pentruman 发表于 2025-7-19 13:07 | 显示全部楼层
封装是将数据(属性)和操作数据的方法(行为)封装在一个类中,对外部隐藏具体的实现细节。这样可以提高代码的安全性和可维护性。
sdlls 发表于 2025-7-19 14:10 | 显示全部楼层
我们可以用结构体 和函数指针等方式模拟或体现OOP的思想
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部