保姆
一个简单的依赖注入容器(一个简单的依赖注入容器)
初衷
实习时导师要求我研究一下依赖注入容器并试着自己手写一个,我一听,好家伙,又是加班的一天啊。
当时用的是C#,就翻了翻IServiceCollection的二进制文件,梳理了一下流程,发现其实核心逻辑并不复杂,就是通过反射将你需要的对象构造出来,如果构造期间需要其他对象,就递归归进行,先构造依赖项。如果对象的生命周期是singleton,就用一个地图存起来后续直接获取。
一番研究后,还真让我写出来了,虽然代码很少,逻辑也很粗糙,但是总归