我正在重构中等规模的MVC框架以使用依赖注入,从服务定位器类+各种其他技术的混合转向更一致的服务提供者/服务容器模型类似于Laravel。一般来说,它进展顺利。
我慢慢逐步淘汰并试图避免的一件事就是依赖服务容器本身。当我转向某些类型的工厂时,这很好。当涉及更重要的结构骨骼如控制器和存储库等时,这似乎很有意义。但是,有一件事我很难得到我的围绕如何为简单的类来做这个,你可能需要加载各种实例,只需要在这里或那里的奇数或具有就地构造需求。例如,我可能想要多次实例化REST客户端,或者将某些字符串处理实用程序传递给构造函数,但我也可能只希望在15个存储库中的1个存储库中执行此操作,自己的工厂类。
到目前为止,我已经注入了15个中的1个所需的类,并且在一个案例中与它一起生活,在另一个案例中,它实际上并不需要任何依赖项,所以我只是直接实例化它虽然我的直觉告诉我不要(猜测是什么,我的直觉是对的,一天之后它现在可能与依赖或至少建筑服务有关)。
你阅读的大多数建议只涉及大图片/理想化的例子,但感觉可能只是有一个细节,你只需要在项目的边缘捏造。事后有一些关于在设置属性中传递实例的说法,但这根本感觉不对,特别是如果你想要多个副本 - 你最终不得不明确的状态和类似的事情,当你真的想要一个新的时候。
那么我该如何改进这个呢?课程本身有问题吗?结构问题整体问题?
感谢。