• 正文
    • 1 - 什么是装饰器模式?
    • 2 – 什么情况下要用装饰器模式?
    • 3 – 如何使用装饰器模式?
  • 相关推荐
申请入驻 产业图谱

嵌入式 C 语言设计模式 --- 装饰器模式

2023/02/17
1594
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1 - 什么是装饰器模式?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

未完

 

查看全部内容点击:https://mp.weixin.qq.com/s/1DJO6Vi4QVtHnoQpt1EjAQ

 

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录