oop - 运行时多态性可以称为控制反转还是其他

标签 oop polymorphism inversion-of-control concept

我们知道 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/

相关文章:

java - 关于公共(public)内部类的问题

java - Collections.sort 使用什么设计模式?

c++ - 如何设计类方法只能被调用一次

php - 实现接口(interface)问题

面向对象的 JavaWorld : Getters/Setters vs Builder

c# - 为什么 'ref'和 'out'不支持多态?

java - Java 是否有任何理由对同一类中的重载方法使用后期/静态绑定(bind)?

asp.net-mvc-2 - AuthorizeAttribute MVC 2 中的 IoC Unity 容器注入(inject)

c# - ASP.Net MVC 3 Unity IoC 处理

c# - 使用 Ninject IOC 替换一个工厂