压倒性依赖繁殖者是否被认为是不良做法?

时间:2019-02-23 23:38:10

标签: python design-patterns dependency-injection d

我正在用D编程语言重新实现类似Python Dependency Injector的功能。我想为D建立一个纯依赖注入框架。

overriding of providers被认为是不良做法吗?显然,提供者的压倒显然是一种非本地依赖性,而非本地依赖性通常被OOP理论认为是错误的做法。

那么我应该还是不应该在D的纯依赖注入框架中实现提供者的覆盖?

1 个答案:

答案 0 :(得分:1)

首先,D中没有标准的DI支持。按照标准,我的意思是-DI框架不是D标准库的一部分。因此,如何实现它完全取决于您。我只是简单地浏览了您提到的Python Dependency Injector项目,除了一些特定于python的东西外,我看不出为什么用D来实现一个好的DI框架不能以相同的方式完成。 “提供者”的名字使我想起了Java SPI的工作方式,这也是我们(我也是Java开发人员)数十年来一直使用的方式,并且被证明是一种很好的方法。

您的问题有点令人困惑,因为重写在D中有特殊含义。据我拙见,您的DI框架的用户应能够插入其他但兼容的 提供程序,只要这些提供程序提供相同类型的对象(实现您的类需要的某些接口)。

我在上面说过,标准库中没有标准的DI框架,但是值得一提的是,D社区的其他成员也有针对D的DI框架。其中之一是出色的(类似于Spring的)Poodinis框架:https://github.com/mbierlee/poodinis。看看是否适合您的需求。