Oop 运行时多态性是否可以称为控制反转

Oop 运行时多态性是否可以称为控制反转,oop,polymorphism,inversion-of-control,concept,Oop,Polymorphism,Inversion Of Control,Concept,我们知道OOP中的运行时/动态多态性是什么(原则1)。 控制权倒置只是指(根据维基上的定义)(原则2) 你如何区分这两者;我们可以说#1是#2的超集吗。 如果不是的话,我们如何区别或说它们相似呢?IoC只是你的对象为任何愿意使用它的人公开了一个接口,这就成了他的问题——他将如何以及何时这样做(与静态类型或方法调度无关——这是纯API的事情) 多态性是一种在运行时使用确切对象的类型行为的能力,它可以改变方法的调度方式,例如,如果方法被重写,以及所有这些都可以保持类型安全性 甚至不知道如何比较这两者

我们知道OOP中的运行时/动态多态性是什么(原则1)。 控制权倒置只是指(根据维基上的定义)(原则2)

你如何区分这两者;我们可以说#1是#2的超集吗。
如果不是的话,我们如何区别或说它们相似呢?IoC只是你的对象为任何愿意使用它的人公开了一个接口,这就成了他的问题——他将如何以及何时这样做(与静态类型或方法调度无关——这是纯API的事情)

多态性是一种在运行时使用确切对象的类型行为的能力,它可以改变方法的调度方式,例如,如果方法被重写,以及所有这些都可以保持类型安全性


甚至不知道如何比较这两者。

因此,阅读更多特定的IOC实现(依赖注入)肯定是动态多态性的一种用法。当然,这些(1和2)是不同的概念,但它们有一些共同点。对于这两个概念,我们永远不能说一个概念是另一个概念的超集


从wiki页面

实施技术(国际奥委会部分)

在面向对象编程中,有几种基本技术可以实现控制反转。这些是:

-1- Using a factory pattern
-2- Using a service locator pattern
-3- Using a dependency injection, for example:
    -a- A constructor injection
    -b- Parameter injection
    -c- A setter injection
    -d- An interface injection
-4- Using a contextualized lookup
-5- Using Template method design pattern
-6- Using strategy design pattern


依赖注入是一种基于运行时/动态多态性思想的东西

我不是IoC和DI(依赖注入)方面的专家,但我猜您被以下事实误导了:IoC使用多态性以松散耦合的方式向类提供依赖性

您向另一个对象提供(注入)类的对象,实现某个接口或超类

但是,IoC和多态性是非常不同的概念:

  • 是面向对象语言的基础之一
  • 是一种设计模式

对你来说,这可能不是你的问题听起来的样子,但对我(以及其他许多人,相信我)来说,这听起来像是你从帽子里拿出了两个随机术语,并要求它们之间建立联系。是的,你可以说这是随机的。我想知道这个关系,如果有,这两个概念可能是不相关的。阅读一篇关于绑定和耦合的文章,因为我认为动态多态性可以概括为绑定,而IOC可以概括为耦合。这种关系是胡萝卜和手套之间的关系。