你的插件只是套壳 DLL?一文分清伪插件化与工业级完全解耦 不少 Qt 开发者自以为实现了插件化,仅仅把业务代码打包成 DLL 文件,插件内部还是会引入其他模块头文件,直接调用对方类函数,本质依旧是耦合严重的单体软件,长期迭代一定会全面翻车。 真正工业化插件化,核心规则只有一条:插件之间、插件与主基座,仅通信、无直接依赖。传统 Qt 开发耦合泛滥,串口模块需要读取参数时,直接实例化参数配置类,两个模块深度绑定,一旦参数结构体重构,串口、算法、存储等十几个模块全部需要重新编译,维护成本成倍上涨。 工业设备软件容错要求极高,单个功能模块故障不能导致整机程序闪退,硬耦合架构完全达不到标准。 标准插件三层架构严格隔离:基座管理层、纯虚接口规范层、业务插件实现层。基座统一管控所有插件生命周期,定义统一初始化、启动、卸载、销毁虚函数,所有业务插件强制继承该接口,不对外暴露任何内部业务类。全部数据交互依靠全局发布订阅消息总线,插件无需知晓消息发送方是谁,只订阅自身需要的数据。单个插件崩溃、资源异常只会隔离自身,不会扩散到整个软件,从代码底层完成模块解耦。