我正在为某个软件编写扩展程序。此扩展使用许多挂钩为此软件添加功能。所讨论的软件全部使用全局状态,并且通常具有依赖性,以及通过使用静态方法调用的紧耦合。在我的钩子处理程序调用的代码中,我经常需要来自这个软件的组件,因此似乎别无选择,只能将它们拉进去。这些钩子都是完全不同的,在应用程序处理的各个步骤中传递不同的内容,以及在我的扩展代码中使用不同的处理组件。这基本上意味着我的扩展有一堆入口点,排除在某个主要入口点创建一个应用程序对象并从那里进行依赖注入。在这种情况下,有关采用哪种方法作为SOLID代码的任何建议?
答案 0 :(得分:0)
我会考虑使用 Facade设计模式。它可以帮助您隐藏当前系统的复杂性。使用外观模式,您的扩展和系统之间只能有一个通信点。在外观中,您只需公开扩展所需的入口点。它也是唯一依赖于当前系统组件的地方。
网上有足够的资源,所以只是为了开始: