Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 覆盖依赖性生产驱动程序是否被视为不良做法?_Python_Design Patterns_Dependency Injection_D - Fatal编程技术网

Python 覆盖依赖性生产驱动程序是否被视为不良做法?

Python 覆盖依赖性生产驱动程序是否被视为不良做法?,python,design-patterns,dependency-injection,d,Python,Design Patterns,Dependency Injection,D,我正在用D编程语言重新实现类似Python的东西。我想为D构建一个纯粹的依赖注入框架 这被认为是坏习惯吗?似乎覆盖提供者显然是一种非局部依赖,而OOP理论通常认为非局部依赖是一种不好的实践 因此,我应该还是不应该在D的纯依赖注入框架中实现对提供者的覆盖?首先,D中没有标准DI支持。所谓标准,我的意思是,DI框架不是D标准库的一部分。因此,如何实现它完全取决于您。我只是简单地浏览了一下您提到的Python依赖注入程序项目,除了一些特定于Python的东西之外,我看不出为什么用D实现的好DI框架不能

我正在用D编程语言重新实现类似Python的东西。我想为D构建一个纯粹的依赖注入框架

这被认为是坏习惯吗?似乎覆盖提供者显然是一种非局部依赖,而OOP理论通常认为非局部依赖是一种不好的实践


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

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

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

我在上面说过,在标准库中没有标准的DI框架,但是值得一提的是,D社区的其他成员为D开发了DI框架。其中之一是优秀的(类似弹簧的)Poodinis框架:。看看它是否适合你的需要