据我了解,客户端(核心程序)需要有一个通用类型,以允许插件,另一个对象等成功传递给客户端。我在这里看到了这个答案,
在Java中,使用预处理接口传递构造函数是有意义的。从提到的SO问题,
public SomeClass (MyClass myObject) {
this.myObject = myObject;
}
据我了解,MyClass是一个由Interface定义的类型。 myObject实现了,实际上是必需的,因此允许我将myObject传递给构造函数。
那么依赖注入如何在duck typing语言中工作? Python没有接口。 Python的DI实现与Java或其他静态类型语言相同,还是脚本语言的“解决方法”类型DI?
答案 0 :(得分:2)
对接口的需求只是Java的一个细节。这是允许您定义一个函数的东西,该函数可以接受任何几个不相关的类型的实例。
由于每个Python函数都可以接受任何类型的实例,因此不需要任何可比较的实例。
当然,如果传入一个没有所需功能的对象,那么在某些时候你会得到一个异常。 Python具有所谓的“隐式接口” - 函数所需的接口是它在对象上执行的任何操作,期望它们工作。