【单片机】常用设计模式
设计模式核心思想特征应用场景桥接模式将抽象与实现分离抽象与实现解耦各自独立扩展对象有多维度变化避免类爆炸工厂模式封装对象创建过程隐藏创建细节解耦使用者与产品创建过程复杂需动态创建不同对象注册器模式集中管理和查找对象全局访问点统一管理实例全局对象共享插件化、服务定位订阅者模式定义对象间一对多的依赖关系目标和观察者解耦支持广播通信关联对象间的联动事件驱动消息通知桥接模式将一堆东西抽象出共性分成几个维度比如现在有一堆遥控器小米普通遥控器小米语音遥控器小米触屏遥控器TCL 普通遥控器TCL 语音遥控器……分成两个维度遥控器普通、语音、触屏和电视小米、TCL“桥”就是“遥控器控制电视”遥控器只管按键电视只管播放。工厂模式就是将对象创建的过程封装起来。适用于同类对象很多很复杂还需要动态处理的情况。注册器模式就是将各种对象注册到一个链表里用的时候查表即可省心高效。订阅者模式的核心思想发布者Publisher只管喊不管谁听订阅者Subscriber自己关注感兴趣的频道有消息就处理事件总线EventBus负责把发布者的消息广播出去架构上的变化从蛛网到星形观察者模式有点类似订阅模式但是观察者本质是一个回调函数表是需要立刻执行的。PID 模块不需要知道 LCD 的存在它只管修改数据。LCD 也不需要知道谁在改数据它只管订阅、等通知、刷新显示。新增功能只需要写一个新的观察者注册到数据上即可。完全不用动原有代码。在观察者模式的基础上衍生了显示常用的MVC模式单例模式管好你的硬件资源单例模式源自面向对象的思想将多个业务都会用到的功能打包成一个实例自我管理封装接口从而节约资源避免冲突。比如多线程下都想打印可以创建一个打印实例有打印锁有环专门管理打印业务。命令模式将操作封装成表的形式用命令绑定某个操作当命令来的时候查表运行即可。比如显示上将显示画面作为一个命令和处理lcd的函数绑定。适配器模式让换芯片不再痛苦不同驱动对服务层提供同名接口方便硬件更换。rtthread的设备驱动层就是这个设计思想责任链模式主要用于通信链路层协议解析。在写代码上就是多用反向判断错误条件然后提前退出而不是正向判断什么条件满足我才该执行生产者消费者模式主要解决生产消费速度不匹配问题通过缓存实现异步操作主要用于通信物理层。