嵌入式C语言软件设计之装饰器模式(Decorator Pattern)

嵌入式技术

1368人已加入

描述

1 - 什么是装饰器模式?

装饰器模式(Decorator Pattern),是结构型设计模式的一种,装饰器模式允许向一个现有的对象添加新的功能,而又不改变其对象结构,这种方式比使用子类继承的方式更加灵活。

装饰,顾名思义,就是在原有事物的基础上,锦上添花地新增某些点缀或功能,但事物原有的功能依旧继续保留。

通俗来说,就是有一位女生,她在素颜的时候已经很美很漂亮了,但她为了更美,选择了利用化妆技术,让自己的美貌达到惊为天人的效果。“化妆”这一个过程,就是一个装饰的过程。

装饰器模式的优势就是,不用在原有功能的基础上进行修改,只需要对原有功能进行一次封装操作,就可以达到新增其他功能的目的。

嵌入式

2 – 什么情况下要用装饰器模式?

在嵌入式C语言软件设计的时候,当我们在进行某一种操作之前,需要在原有操作的基础上,再进行多一步操作,这种情况下,就需要用到装饰器模式。

有很多设计场景可以使用装饰器模式。

比如,我们在进行数据传输的时候,需要根据通信协议对数据进行封装,那么,通信协议相关的函数就是一个装饰器。

再比如,我们在配置MCU某些设备参数的时候,需要在配置前把参数保留到存储器,这个“保留到存储器”的相关函数,就是一个装饰器。

再比如,我们在使用系统提供的信息打印函数时,需要提前把日期和时间都打印出来,这个提前打印出日期和时间,就是一个装饰器。

嵌入式

3 – 如何使用装饰器模式?

举一个嵌入式软件比较常见的设计场景,串口参数配置。在以往的设计中,我们通常会调用一个函数,对MCU串口的通信参数(比如波特率,校验位,停止位,数据位,等等)进行配置。

现在,我们在这个配置动作的基础上,增加一个参数保存的动作,但又不想改变原来的配置函数,接下来,看一下具体的实现过程。

1、先构建一个串口设备相关类,这个类包含了一些串口的基本通信参数,以及提供了一个配置串口参数的方法,具体的代码实现如下图所示。

嵌入式

编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分