控制反转(IoC)促进了低耦合,耦合是什么意思?

耦合是一个宽泛的概念。两个程序模块有关联就叫做耦合。

我们知道,模块之间必然要关联起来才能工作,这是有业务逻辑决定的。所以解耦并不是字面意义上的把关联拆掉,而是把模块之间的关联放松到必要的程度。降低耦合度的建议:

模块只对外暴露最小限度的接口,形成最低的依赖关系。

只要对外接口不变,模块内部的修改,就不得影响其他模块。

删除一个模块,应当只影响有依赖关系的其他模块,而不是影响其他无关部分。


软件工程有一条铁律“高内聚,低耦合”就是这个道理:必要的耦合不可否认,没有耦合程序就做不成事;但是不必要的紧耦合,就会让程序“牵一发而动全身”,最终让程序员的编写和维护都无从下手。(把必要的耦合理顺,同时尽量减少不必要的耦合


人类同时只能专注于一小部分的内容。“高内聚,低耦合”就是为了满足人类的这个特点--小尺度上只专注一个模块局部的编码工作才能够进行。大尺度上把具体代码转化为一些抽象的“模块”和“依赖关系”,才能够抓大放小,把握住程序的脉络,拼合出一个完整的产品。

程序就是人类创造的第二师姐,程序的逻辑无非是世界运行规律的抽象。跳出程序看程序,就会发现不一样的观点和角度。


你可能感兴趣的:(Spring)