嵌入式技术
1 - 什么是装饰器模式?
装饰器模式(Decorator Pattern),是结构型设计模式的一种,装饰器模式允许向一个现有的对象添加新的功能,而又不改变其对象结构,这种方式比使用子类继承的方式更加灵活。
装饰,顾名思义,就是在原有事物的基础上,锦上添花地新增某些点缀或功能,但事物原有的功能依旧继续保留。
通俗来说,就是有一位女生,她在素颜的时候已经很美很漂亮了,但她为了更美,选择了利用化妆技术,让自己的美貌达到惊为天人的效果。“化妆”这一个过程,就是一个装饰的过程。
装饰器模式的优势就是,不用在原有功能的基础上进行修改,只需要对原有功能进行一次封装操作,就可以达到新增其他功能的目的。
2 – 什么情况下要用装饰器模式?
在嵌入式C语言软件设计的时候,当我们在进行某一种操作之前,需要在原有操作的基础上,再进行多一步操作,这种情况下,就需要用到装饰器模式。
有很多设计场景可以使用装饰器模式。
比如,我们在进行数据传输的时候,需要根据通信协议对数据进行封装,那么,通信协议相关的函数就是一个装饰器。
再比如,我们在配置MCU某些设备参数的时候,需要在配置前把参数保留到存储器,这个“保留到存储器”的相关函数,就是一个装饰器。
再比如,我们在使用系统提供的信息打印函数时,需要提前把日期和时间都打印出来,这个提前打印出日期和时间,就是一个装饰器。
3 – 如何使用装饰器模式?
举一个嵌入式软件比较常见的设计场景,串口参数配置。在以往的设计中,我们通常会调用一个函数,对MCU串口的通信参数(比如波特率,校验位,停止位,数据位,等等)进行配置。
现在,我们在这个配置动作的基础上,增加一个参数保存的动作,但又不想改变原来的配置函数,接下来,看一下具体的实现过程。
1、先构建一个串口设备相关类,这个类包含了一些串口的基本通信参数,以及提供了一个配置串口参数的方法,具体的代码实现如下图所示。
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !