- Spring启示录
- OCP开闭原则
- DIP依赖倒置原则
- IoC控制反转
- DI依赖注入
一、Spring启示录
1.1 OCP开闭原则
- 什么是
OCP
?OCP(Open-Closed Principle)
开闭原则是软件七大开发原则当中最基本的一个原则。- 对什么开?对扩展开放。
- 对什么闭?对修改关闭。
OCP
开闭原则:- 在软件开发过程中应当对扩展开放,对修改关闭。
- 软件开发过程中,通过添加额外的类对原先程序已有的功能进行扩展是没问题的,但是如果因为要进行功能扩展而修改之前运行正常的程序,这是不被允许的。
- 因为一旦修改之前运行正常的程序,那么项目整体就要进行重新测试,这会导致额外的开销和资源消耗,并且测试过程相当麻烦。
OCP
开闭原则是最核心的、最基本的,其他的六个开发原则都是为这个原则服务的。- 是否违反
OCP
开闭原则的判断:- 只要你在扩展系统功能的时候,没有修改以前写好的代码,那么你就是符合
OCP
原则的。 - 反之,如果在扩展系统功能的时候,你修改了之前的代码,那么这个设计是失败的,违背了
OCP
原则。
- 只要你在扩展系统功能的时候,没有修改以前写好的代码,那么你就是符合
1.2 依赖倒置原则DIP
什么是
DIP
?DIP(Dependency Inversion Principle)
依赖倒置原则,就是指不再显式的建立类之间的关联关系,而是面向接口编程,面向抽象编程,不面向具体编程,从而降低程序的耦合度,提高程序的扩展力,增强代码复用性。- 依赖倒置原则的核心思想是高层模块不应该依赖于低层模块,二者都应该依赖于抽象。换句话说,不论是高层模块还是低层模块,都应该依赖于抽象的接口而不是具体的实现细节。
依赖倒置原则的目的:降低程序的耦合度,提高程序的扩展力,增强代码复用性。
是否符合依赖倒置原则:
- “上” 不依赖 “下”,就是符合,即类的实例对象之间没有明确固定在代码中的依赖关系。
- “上” 依赖 “下”,就是违背。只要 “下” 一改动,“上” 就受到影响。
符合依赖倒置原则的编程思想:控制反转
IoC
。
1.3 控制反转IoC
- 什么是
IoC
?IoC(Inversion of Control)
控制反转,是面向对象编程中的一种设计思想,可以用来降低代码之间的耦合度,符合依赖倒置原则。- 控制反转的核心思想:
- 将对象的创建权交出去
- 将对象和对象之间关系的管理权交出去
- 对象的创建和对象之间关系的维护都由第三方容器来负责
- 控制反转中的反转是两件事:
- 不在程序中采用硬编码的方式来
new
对象了,而是将new
对象的权利交出去。 - 不在程序中采用硬编码的方式来维护对象的关系了,对象之间关系的维护权交出去了。
- 不在程序中采用硬编码的方式来
- 控制反转思想的实现:依赖注入
依赖注入DI
控制反转的实现方式有多种,其中比较重要的叫做:依赖注入(
Dependency Injection
,简称DI
)。依赖注入,用于实现对象之间关系的建立。
控制反转是思想,依赖注入是这种思想的具体实现。
依赖注入
DI
,又包括常见的两种方式:set
注入(执行set
方法给属性赋值)。- 构造方法注入(执行构造方法给属性赋值)。
依赖注入中 “依赖”是什么意思?“注入”是什么意思?
- 依赖:A 对象和 B 对象的关系。
- 注入:是一种手段,通过这种手段,可以让 A 对象和 B 对象产生关系。
依赖注入:对象 A 和对象 B 之间的关系,靠注入的手段来维护。而注入包括:“
set
注入” 和 “构造注入”。