我一直在阅读依赖注入框架。我真的爱上了分离关注点并让对象完成其核心工作的想法——这无疑是一个优秀且长期存在的设计原则!
然而,我在 DI 框架上阅读的越多,我就越担心:1)它们“自动”解决依赖关系的方式 2)关于配置文件中引入的极端复杂性
就第 2 点而言,我看到我的客户花费数百万美元来培训人们使用产品,其中重要的部分是如何“不”接触配置文件。管理员现在害怕这些配置文件。
尽管如此,我看到了另一种称为服务定位器的模式,我可以在应用程序开始时很好地组装所有我想要的“全局”服务(可能是应用程序主机或应用程序上下文或其他)。让这个服务定位器在全球范围内可用,瞧!
但是,我发现当我需要基于某些标准(谁知道?)的不止一种“全局”服务时,使用服务定位器方法的灵活性会降低!
所以,在这里我比以前更困惑于该采取哪个方向。虽然我非常喜欢设计原则,但现有框架的复杂性让我望而却步!
我的担忧是真的吗?其他人有同样的感觉吗?如果是这样,对于如此庞大的压倒性“框架”有什么好的选择吗?