嵌入式编程设计理论与原则解析
1. 项目中的硬件与软件调整
在项目进行几个月后,发现需要一个额外的 GPIO 引脚来支持新功能,但微控制器(MCU)上已无可用引脚。最终决定使用基于 I2C 的 EEPROM 芯片,它只需要两个引脚(时钟和数据),这样就释放了两个 GPIO 引脚。不过,新的 EEPROM 芯片虽然与原 SPI EEPROM 芯片命令集相同,但原软件模块需重构以使用 I2C 通信而非 SPI 通信,整个模块都要重新测试,而且重构过程中引入了一个 bug,需要进行额外的广泛测试。
这一经历凸显了分层在单元测试中的重要性,特别是在实现自动化单元测试时。分层也是解耦代码和为软件未来复用做准备的关键。单一职责原则虽属于战术性最佳实践,但能促成单元测试和平台独立代码等战略性最佳实践。
2. 开闭原则(Open - Closed Principle,OCP)
开闭原则指出,设计软件时,若要添加新特性或功能,应只添加新代码,而不重写现有代码。传统做法是引入抽象接口来解耦“客户端”和“服务器”。
以下是不同设计的示例:
| 设计类型 | 特点 | 示例图 |
| ---- | ---- | ---- |
| 无抽象接口设计 | 简单但不利于减少返工和提高复用性 | 客户端 -> 服务器 |
| 遵循开闭原则的设计 | 允许在不修改原客户端或服务器代码的情况下添加新功能和行为 | 客户端 -> 抽象服务器 -> 服务器 |
PIM 对开闭原则的解读是:添加新功能不应通过编辑现有源代码来实现,要以松散耦合的设计来达成这一目标。
为在设计中实现开闭
超级会员免费看
订阅专栏 解锁全文
1093

被折叠的 条评论
为什么被折叠?



