老师,写这个LED驱动为啥要用设计模式中的桥接模式,优点在哪

🔍 溯源 ✍️ Jack | 📅 2024-10-24 | 👍 3 | 原帖↗
#知识星球 #立芯嵌入式 #来源/立芯星球 #技术/BSP架构 #技术/设计模式 #质量/精华

原帖 | Jack | 2024-10-24 10:28 | 👍3 | 阅读约1

老师,写这个LED驱动为啥要用设计模式中的桥接模式,优点在哪,解决了什么问题?我看网上一些开源库,例如mutti_button都是一个文件搞定,没分driver和handler两个文件,在我看来好像是一个文件就可以了?

这个其实不在于架构如何,而在于解决问题的方法是系统层面上的,通过文件管理了链接的最小单元,然后在系统集成时,变量的高内聚,低耦合,能够在Hex层面直接进行调用和解析,同时也方便整个工程的资源管理,你可以看看最新的第六集(涉及异步IO构造、系统集成、飞秒启动、差分升级、hex驱动直接引导),它都需要有明确的资源管理(分散加载)方案(分散加载与重定位的辨析见老师,这里为什么不是分散加载,),和对对象内存的聚合要求,这是在hex层面去优化系统性能的关键。

另外,你看到的架构知识我们思路在这一时刻的展示,而最应该学习的是背后的高内聚,低耦合,面向对象的思路,至于这些确定性的架构,不要去记,没什么用的。

这里可以用桥接,可以用工厂,这些是比较常用的设计模式,但是它不会叫架构,因为架构本来就是极度灵活的,它需要辩证性的去使用和创造,个人要掌握的重要点是自己设计和架构的能力。

至于网上的很多的花式点灯,很多是在给人看,让人便于理解,但是这治标不治本,对计算机来说可能还增加的程序复杂性(时间,空间复杂度等),而我们这种高内聚低耦合主要目的不是在于给人方便看(当然,也很方便看,和很多成熟软件设计都是相通的),而是方便做数据归类,然后差分升级,加快启动速度(飞秒启动),在hex层面上彻底优化系统。

最终,在通过已经跑通的代码架构,再收敛,删减,取得系统层面性能和规范性(可阅读性)的交叉最优解,取得平衡。


相关笔记