转自 https://blog.csdn.net/qq_38006047/article/details/80797386
1,理解“控制反转”
控制反转,也叫依赖注入,是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度。
程序的耦合:调用者与被调用者的依赖关系。
比如:程序员A负责编写A类,程序员B负责B类开发,A类的某些功能需要是梨花B类的对象调用其方法才能完成,那么A类就依赖B类,如果程序员B不写B类 难道程序员A要一直等下去?
企业开发的原则:“编译时不依赖,运行时才依赖”
// 所谓的A类依赖B类 public class PersonServiceBean{ private PersonDao personDao=new PersonDaoBean(); public void save(Person person){ personDao.save(person); } }
PersonDaoBean是在应用内部创建及维护的。
所谓“控制反转”就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓的反转。