1

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

4

1 回答 1

0

我会考虑使用Facade 设计模式。它将帮助您隐藏当前系统的复杂性。使用外观模式,您的扩展和系统之间只能有一个通信点。在外观中,您只需公开扩展所需的入口点。它也将是唯一依赖于您当前系统组件的地方。

网络上有很多资源,所以只是开始:

于 2012-12-11T11:23:48.070 回答