主程序为什么敢统一执行所有插件?答案藏在 `ModuleBase` 这份合同里
如果你第一次打开02Plugins,很容易冒出一个疑问:这些插件看起来差异这么大,有的是延时工具,有的是图像处理,有的是流程控制,主程序到底凭什么敢把它们放进同一套运行器里统一调度?答案不在某个具体插件里,而在01Main/VM.Start/Core/ModuleBase.cs这层抽象里。先给结论:在 VM 这套插件体系里,ModuleBase不是一个普通“顺手提出来的基类”,而是主程序与插件之间真正的执行合同。主程序只要认这份合同,就能发现插件、创建实例、统一执行、按需打开参数界面,而不用理解每个插件内部的算法细节。这篇我们就把这份“合同”拆开看清楚。先建立一个心智模型:主程序真正依赖的,不是某个插件功能,而是统一入口读这套代码时,一个很容易踩的坑是:你会先被某个插件自己的参数、算法、界面吸引;然后下意识认为“主程序应该很懂这些插件”。其实恰好相反。从主程序的视角看,插件之间当然可以千差万别,但只要它们都遵守同一份执行合同,就能被放进统一流程里。换句话说,主程序关心的不是:这是延时工