SOLID 原则在单片机环境下的 C 语言实现示例,结合嵌入式开发常见场景进行详细说明
1. 单一职责原则 (SRP)
定义:一个模块(函数/文件)只负责一个功能。
示例:传感器数据采集与处理分离
// SensorAdc.h - 仅负责ADC原始数据采集
typedef struct {
uint16_t (*ReadRaw)(void); // 原始数据读取接口
} SensorAdc;
// SensorProcessor.h - 仅负责数据处理
typedef struct {
float (*ConvertToTemperature)(uint16_t adcValue); // ADC转温度
} SensorProcessor;
// 使用示例
SensorAdc cAdc = {ADC_ReadRawValue};
SensorProcessor cProcessor = {ADC_ConvertToTemperature};
uint16_t cRaw = cAdc.ReadRaw();
float cTemp = cProcessor.ConvertToTemperature(cRaw);
2. 开闭原则 (OCP)
定义:模块对扩展开放,对修改关闭。
示例:支持多种显示驱动(LED/LCD)的扩展
// DisplayDriver.h - 抽象接口
typedef struct {
void (*Init)(void); // 初始化函数指针
void (*ShowText)(cons