IoC 和自动装配让我困扰的是 IoC 对创建的对象的可用性。
假设我有一个静态 Utils 类,它在整个系统中使用。当我决定使用 IoC 和 DI 时,我很容易将 Utils 更改为非静态的,并让我的所有组件都接收它的实例。
但是,自动装配仅适用于在引导期间创建的组件、在运行时创建的对象或作为用户操作的响应以及使用 Utils 的对象,自动装配不起作用。相反,我必须手动将 Utils 的实例传递给在运行时创建的每个对象的每个实例。
我能看到的唯一解决方法是使用传递 IoC 容器的反模式,我当然不想这样做。
还有其他方法吗?或者我是否被迫将 Utils 手动传递给每个实例和类?
注意:这不是设计问题。当然,我可以通过各种方式尽量减少这种隐喻 Utils 的使用,但在许多情况下这是不可避免的。