ioc:Inversion of Control
di:Dependency Injection
这些概念已经在oo里被过度解读了,有必要正本清源,其实没有什么第三方负责,只有一个容器,这是最关键的概念
容器就是运行时环境,没有那么多乌七八糟的解读,开发过界面的人知道什么是容器,html标签就是一个页面最终容器
winform中的form也是,最终容器负责所有的对象 的生命周期,从创建到回收
只是在运行时最终容器里存在一个基于反射,或emit这样的类似技术来创建的依赖对象 的方式,所以容器里面的设计模型里
用的元数据,象Type, Description等 对依赖对象 的描述 和类型的信息,以及,依赖对象 的生存策略描述,比如 每实例 ,单例
还是每过程,等
但的确也有单独提供的 ioc库,这个的确可以说成是第三方,但它也是需要 先被加载到运行时最终容器环境(运行时上下文环境)
然后才发挥作用的,它里面也会使用 反射,或 ExpressionTree,或Emit等类似技术来对描述的依赖对象 进行按需求创建的。