IoC/DI summary
下面的笔记根据Java私塾Spring公开视频教程整理并简化(你没看错,已经简化过了,^_^)。
IoC/DI的基本思想
- 把程序之间的依赖关系去掉
- 把程序对象设置到IoC/DI容器的配置中,作为Bean
- 由IoC/DI容器(下面简称容器)来管理Bean的创建、实例化
- 由容器把Bean之间的关系注入到需要这些关系的对象里面
下面的笔记根据Java私塾Spring公开视频教程整理并简化(你没看错,已经简化过了,^_^)。
早年参加工作的时候,大家普遍说,不一定要掌握那么多语言细节,也不一定要学那么多语言,需要的时候查查书、上上网就行了,重要的是“编程思想”。好高级啊!“编程思想”这个当年流行的词儿似乎代表着“高端大气上档次”,似乎意味着掌握编程思想的人都是码农界的高富帅。呃,编程思想,嘛玩意儿?难道就是一系列系统的想法精粹,就像《毛泽东思想》吗?好像不是。后来捧读了巨著《C++编程思想》和《Java编程思想》,也没窥透所谓的思想。后来才觉着,在编程界,英文里可能就不存在思想的准确对应词吧?Idea?Thought?Thinking?Ideology?都不像。
最近在看《Java程序员修炼之道》(我最近是迷上各种“道”了),其中提到了DIP,又激起我重新厘清编程思想的机会。现在想来,编程,或者说程序设计的思想,应该可以归在设计方法学之下,即有了某种方法,按照这种方法去思考问题、构建软件和设计程序,就是这种方法的思想,比如面向过程的设计思想,或面向对象的设计思想。现在,我们也可以说面向组件的设计思想,或者是面向云的设计思想,甚至是用户体验至上的设计思想。我们不自觉地从“编程”思想演进到“设计”思想了,思想总算正本清源,设计需要思想,而编程只是设计的结果。设计在哪儿?设计无处不在。软件设计从需求获取阶段就已经开始,直到程序员编写每一行代码都贯穿始终,只是体现在设计的不同层面而已。所以,程序员的80%的工作都是在设计(Think&Design),而只有20%的时间是在编程(Programming)。