网上有无数帖子一提到什么是IOC,答案都是千篇一律的控制反转,自己不创建对象,交给别人创建对象。其实真正的IOC解释起来真的很简单,下面直接上一个大家每天写几百遍的代码。
这是一个entity(private User user以上是我自己的代码和本文章无关请忽略掉),在TempCount中创建User对象,这就是自己创建对象,如果我要修改User的属性,那么就要进入这个类中,user.id=xxx,user.name=xxx。也就是网上所说的代码修改起来很麻烦。
这里上的是构造方法(getter setter同理),我们在这个构造方法中是没有创建User对象的,那么User对象是哪来的呢?是在外部创建后传递进来的。所以在这里就是网上所说的自己不创建对象,我总结为在需要用到该对象的时候才创建该对象,谁调用他,谁创建。这样就避免了在容器启动时就创建一个User对象导致容器启动缓慢,并且在修改User成员属性的时候也会更加的方便。
综上,IOC是面向对象中重要的体现。
另外网上说的IOC和DI啥关系,spring官方文档是这样说的 IOC/DI,大家懂了吧