我们知道 OOP 中的运行时/动态多态性是什么(原则 #1)。 控制反转只是意味着(根据 wiki 上的定义)Inversion Of Control (原则 2)
你如何区分这两者?我们可以说#1 是#2 的超集吗? 如果不是,我们如何区分或说它们相似
最佳答案
所以看多了一定的IOC实现(依赖注入(inject))肯定是动态多态的一种用法。所以这些(#1 和#2)当然是不同的概念,但它们确实有一些共同点。对于这两个,我们永远不能说一个概念是另一个概念的超集。
来自维基页面
实现技术(IOC 部分)
在面向对象编程中,有几种基本技术可以实现控制反转。它们是:
-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
依赖注入(inject)是基于运行时/动态多态性思想的东西
关于oop - 运行时多态性可以称为控制反转还是其他,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21171580/