0

Common Service Locator Library是一个好主意,但它让我问“我们也可以让绑定更通用吗?”

当然,具体实现(例如结构图、Unity 等)之间的差异使得不可能有一个完全通用的绑定概念。但是应该可以实现80/20 规则。是的?

换句话说,为什么不拥有一套涵盖大多数绑定场景的简单通用绑定呢?也许最简单的普通绑定只需要一个元组:

requested type, bound type, life-time-management-enum

以前有人做过类似的东西吗?

4

1 回答 1

0

公共服务定位器库是个好主意

CSL 仅作为框架开发人员的抽象,因为非框架应用程序在应用依赖注入模式方面要好得多,这使我们能够完全消除对服务定位器的需求。

为什么不拥有一套涵盖大多数绑定场景的简单通用绑定呢?

定义自己的自定义抽象可以做到这一点非常“容易”。然而,问题在于这个 80/20。由于每个容器都存在差异(魔鬼在细节中),这种抽象仅适用于最琐碎的应用程序。对于其他一切,您将不得不回退直接与容器交互,这使得抽象无用。

但这一切都假设从容器切换的问题在于重写基本的“请求类型、绑定类型、生命周期管理枚举”语句,但这是一个错误的假设。更改这些行可以在几分钟内完成(因为您的所有注册码都在一个地方)。然而,从一个容器切换到另一个容器的困难在于,对批量注册、装饰器注册、拦截、生命周期范围、注册-解析-发布等功能的支持差异,以及您的应用程序对特定框架功能的依赖关系.

于 2012-10-28T15:43:52.617 回答