Common Service Locator Library是一个好主意,但它让我问“我们也可以让绑定更通用吗?”
当然,具体实现(例如结构图、Unity 等)之间的差异使得不可能有一个完全通用的绑定概念。但是应该可以实现80/20 规则。是的?
换句话说,为什么不拥有一套涵盖大多数绑定场景的简单通用绑定呢?也许最简单的普通绑定只需要一个元组:
requested type, bound type, life-time-management-enum
以前有人做过类似的东西吗?
Common Service Locator Library是一个好主意,但它让我问“我们也可以让绑定更通用吗?”
当然,具体实现(例如结构图、Unity 等)之间的差异使得不可能有一个完全通用的绑定概念。但是应该可以实现80/20 规则。是的?
换句话说,为什么不拥有一套涵盖大多数绑定场景的简单通用绑定呢?也许最简单的普通绑定只需要一个元组:
requested type, bound type, life-time-management-enum
以前有人做过类似的东西吗?
公共服务定位器库是个好主意
CSL 仅作为框架开发人员的抽象,因为非框架应用程序在应用依赖注入模式方面要好得多,这使我们能够完全消除对服务定位器的需求。
为什么不拥有一套涵盖大多数绑定场景的简单通用绑定呢?
定义自己的自定义抽象可以做到这一点非常“容易”。然而,问题在于这个 80/20。由于每个容器都存在差异(魔鬼在细节中),这种抽象仅适用于最琐碎的应用程序。对于其他一切,您将不得不回退直接与容器交互,这使得抽象无用。
但这一切都假设从容器切换的问题在于重写基本的“请求类型、绑定类型、生命周期管理枚举”语句,但这是一个错误的假设。更改这些行可以在几分钟内完成(因为您的所有注册码都在一个地方)。然而,从一个容器切换到另一个容器的困难在于,对批量注册、装饰器注册、拦截、生命周期范围、注册-解析-发布等功能的支持差异,以及您的应用程序对特定框架功能的依赖关系.