ioc di

Posted projectdd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ioc di相关的知识,希望对你有一定的参考价值。

ioc:Inversion of Control

di:Dependency Injection

这些概念已经在oo里被过度解读了,有必要正本清源,其实没有什么第三方负责,只有一个容器,这是最关键的概念

容器就是运行时环境,没有那么多乌七八糟的解读,开发过界面的人知道什么是容器,html标签就是一个页面最终容器

winform中的form也是,最终容器负责所有的对象 的生命周期,从创建到回收

 

只是在运行时最终容器里存在一个基于反射,或emit这样的类似技术来创建的依赖对象 的方式,所以容器里面的设计模型里

用的元数据,象Type, Description等 对依赖对象 的描述 和类型的信息,以及,依赖对象 的生存策略描述,比如 每实例 ,单例

还是每过程,等

 

但的确也有单独提供的 ioc库,这个的确可以说成是第三方,但它也是需要 先被加载到运行时最终容器环境(运行时上下文环境)

然后才发挥作用的,它里面也会使用 反射,或 ExpressionTree,或Emit等类似技术来对描述的依赖对象 进行按需求创建的。

以上是关于ioc di的主要内容,如果未能解决你的问题,请参考以下文章

Spring -- IOC/DI 基础概念的理解

Unity IOC/DI使用

IOC和DI的区别详解

IOC/DI的理解

Spring IOC/DI

ioc、aop以及di