本文触发点:读spring揭秘

说人话,ioc干了啥?通过反射帮你主动地把组合(依赖)的对象赋值(setter).lombok是帮你写getter/setter/constructor/builder,ioc就相似的,帮你把 你定义的service,set到依赖它的中央.

为什么这么搞?设计准则里的一条规定:繁多职责准则.每个类都有本人的繁多的职责,这里就感觉说的很分明但有很费解,因为缺了界线,多大的职责算繁多职责,那一个大的繁多职责,须要做许多事件,每件事又是一个繁多职责?这个角度了解就很难了. 我的了解是,这得从面向对象说起.

面向对象其实就是代码的整顿, 面向办法就是一路走到头,为什么面向对象胜了面向办法?可读性,可维护性都更不便, 你能够想想一下, 如果看过一些spring源码的教程,就晓得spring如果不把代码拆分到不同的类,都挤在一个办法里,那得多难理得清,找花括号的起止地位就及其简单.面向对象和繁多职责的实质是一样的, 就是代码分类管理(找得容易,改得容易,了解得容易),一个办法的性能尽量小,职责尽量小, 而后供简单需要的接口来选择性调用.正因为 代码分类管理,分类放到不同的java类里,所以就肯定会有 组合(依赖),有了依赖,就肯定有设置依赖的对象,就有了setter, 而setter是能够自动化的(lombok就是一个例子),java有反射,setter也就有了方法论.

此时再看繁多职责,就是任意大小的职责都行,繁多职责分类管理代码,而后呢?复用.也能够不思考复用,仅仅是为了批改不便,浏览不便来.