访问硬件的设计模式

出自《C嵌入式编程设计模式》这本是,算是给自己做的学习笔记吧。

一、硬件的代理模式

先来看看书上的定义:

访问硬件的设计模式_第1张图片访问硬件的设计模式_第2张图片访问硬件的设计模式_第3张图片

书上介绍的很详细了,我的理解就是硬件的代理模式就是基于接口的编程,程序依赖于接口,

而不是依赖于具体的实现。当我们的硬件平台改变时候,只需要根据接口定义,再把底层驱

动全部重写,而上层的逻辑的代码完全不需要改变,也就是接口屏蔽了硬件的具体实现细节。

二、硬件适配器模式

访问硬件的设计模式_第4张图片访问硬件的设计模式_第5张图片访问硬件的设计模式_第6张图片

这个设计也很好理解,当我们把硬件驱动已经写好了,并且在其他项目已经用过了,现在有了

新的项目,原来的驱动接口和我们目前的需求可能不太匹配,这个时候,我们是选择重新写代

码呢?还是想怎么利用现有的驱动代码?我估计会有一部分人选择重写,我以前也是这么干的。

但是这么做,浪费时间和精力,需要重新调试驱动。那么有了硬件适配模式后,我们就可以不

动以前的驱动程序,再写一个适配层,以便旧驱动适应新的代码逻辑。想想生活中的例子,比

如手机type_c转接头,以及各种电源数据线转接头。

三、中介者模式

访问硬件的设计模式_第7张图片访问硬件的设计模式_第8张图片访问硬件的设计模式_第9张图片

这个模式其实很好理解,打个比方,如果一件事情需要几个人协作完成,你会怎么做?是每个

人都可以相互通信、协议?还是有一个人指挥,其他人只需要听命令做事情,给反馈就可以?

几个人可能不是很明显,如果是几个部门呢?其实我感觉中介者模式就是有个总的调度器,每

个部件都和调度器通信,专注做自己的事情。这样信息链路会少,逻辑清晰。

四、观察者模式(发布--订阅模式)

访问硬件的设计模式_第10张图片访问硬件的设计模式_第11张图片

访问硬件的设计模式_第12张图片

这里说的很清楚了,某个传感器的代理或者服务器有个订阅列表,可以动态删除和添加订阅者信息,

一旦有数据更新就根据列表发送消息或者数据。

五、去抖动模式

访问硬件的设计模式_第13张图片访问硬件的设计模式_第14张图片访问硬件的设计模式_第15张图片访问硬件的设计模式_第16张图片

这个模式没什么可说的,通过按键的例子,大家就会有体会。

六、中断模式

访问硬件的设计模式_第17张图片访问硬件的设计模式_第18张图片访问硬件的设计模式_第19张图片访问硬件的设计模式_第20张图片

七、轮训模式

访问硬件的设计模式_第21张图片访问硬件的设计模式_第22张图片

你可能感兴趣的:(程序架构)