现有的现代编程语言是否显式地具有依赖注入作为语言特征,如果是这样,有这样的编程语言如何使用他们的语法将程序依赖与其具体实现分开的例子呢?
(请注意:我不是在寻找DI / IOC框架 – 我实际上正在寻找一种实际上具有该语言内置的功能的编程语言)。
您不会发现依赖注入是一种语言功能,因为它通常被视为设计模式。设计模式作为缺少语言功能的解决方法而出现 – 例如,如果您将第一类类型作为语言功能,则不需要工厂模式(参见第
Norvig’s presentation页的p12),如果您有多种方法作为语言功能,需要双重调度模式。
DI是设计模式的语言特性是“参数模块”。参见discussion of modules与DI相关的Gilad Bracha的语言Newspeak