前言: 这个问题也一直困惑我很久,毕竟其他语言没有IOC也活的很好. 但是Spring在当时能够一统江湖,跟IOC真的有很大的关系. 在没有IOC的时代,New代表一切,女朋友都是可以New出来的. 那么,倒底为什么要去除掉New,想出来IOC这种绝世设计呢? 按照上帝视角的原则,我们还是先看一下,New会出现什么问题,再去推导一下,IOC有没有解决掉这个问题. 正文: 暗灭大人曾经说过,软件开发分成以下几个阶段: 面向功能编程 面向复用编程 面向性能编程 面向未来编程 面向造物编程 大部人都停…