我正在为某个软件编写扩展程序。此扩展使用许多钩子来为该软件添加功能。有问题的软件完全使用全局状态,并且经常引入依赖关系,以及通过使用静态方法调用实现的紧密耦合。在我的钩子处理程序调用的代码中,我经常需要来自该软件的组件,因此似乎别无选择,只能将它们拉入。这些钩子都非常不同,在应用程序处理的各个步骤中传递不同的内容,并且在我的扩展代码中使用不同的处理组件。这基本上意味着我的扩展有很多入口点,排除了在某个主入口点创建应用程序对象并从那里进行依赖注入。关于在这种情况下尽可能采用 SOLID 代码的方法有什么建议吗?