我已经阅读了很多关于依赖注入的文章以及观看了很多视频,但我仍然无法理解它.有没有人有一个很好的类比来解释它?
我看了敏捷秋播的第一部分截屏,但仍然有点困惑.
打个比方?我会给它一个打击......你的CD播放器立体声是没用的,上面没有带音乐的CD ......(这取决于CD).如果他们用CD已经制作了CD播放器,它会很快变得无聊......
所以他们构建它们,这样你就可以将CD(它依赖的CD)"注入"到播放器中.这样你每次都可以注入一个不同的行为,并根据你注入的行为获得"不同"的行为(音乐).
唯一的要求是CD必须与播放器定义的接口兼容.(你不能在1992年的CD播放器中播放蓝光光盘.)
我能想到的最好的比喻就是聘请机械师.
如果没有依赖注入,你就会聘请一名机械师,机械师会带来自己的工具.他可能有糟糕的工具,他可能有很棒的工具,当他应该使用插座时他可能会使用管钳.只要他完成工作,你就不知道,也可能不关心.
通过依赖注入,您可以聘请一名机械师,并为他提供您希望他完成工作的工具.您可以选择您认为最适合您工作的工作的最佳或最合适的工具.