Spring6——一.Spring启示录

39 阅读3分钟

[toc]

此内容仅为个人学习笔记记录,思路可能并不连贯


1. OCP开闭原则

开闭原则:在软件开发过程中应当对扩展开放,对修改关闭.

这一原则旨在提高软件系统的灵活性、可维护性和稳定性。

也就是说,如果在进行功能扩展的时候,添加额外的类是没有问题的,但因为功能扩展而修改之前运行正常的程序,这是忌讳的,不被允许的.因为一旦修改之前运行正常的程序,就会导致项目整体要进行全方位的重新测试.这是相当麻烦的过程.

导致以上问题的主要原因是:代码和代码之间的耦合度太高

图片.png

2.依赖倒置原则DIP

依赖倒置原则(Dependence Inversion Principle),简称DIP,主要倡导面向抽象编程,面向接口编程,不要面向具体编程,让上层不在依赖下层,下面改动了,上面的代码不会收到牵连,这样可以大大降低程序的耦合度,耦合度低了,扩展力就强了,同时代码复用性也会增强.(软件七大开发原则都是在为解耦合服务)

依赖倒置原则的基本定义是:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。换句话说,程序要依赖于抽象接口,而不是依赖于具体实现。这一原则鼓励开发者在设计和实现软件时,将关注点放在接口和抽象上,而不是具体的实现细节上,从而降低模块间的耦合度,提高系统的可复用性和可维护性。


在Spring框架中,他可以帮助我们new对象,并且它还可以将new出来的对象赋到属性上.换句话说,Spring框架可以帮助我们创建对象,并且可以帮助我们维护对象和对象之间的关系

图片.png

Spring可以new出来UserDaoImplForMySQL对象,也可以new出来UserDaoImplForOracle对象,并且还可以让new出来的dao对象和service对象产生关系(产生关系其实本质上就是给属性赋值)

很显然,这种方式是将对象的创建权/管理权交出去了,不在使用硬编码的方式了.同时也把对象关系的管理权交出去了,也不在使用硬编码的方式了,像这种把对象的创建权交出去,把对象关系的管理权交出去,被称为空值反转

3. 控制反转(IoC)

控制反转(Inversion of Control, IoC),是面向对象编程中的一种设计思想,可以用来降低代码之间的耦合度,符合依赖倒置原则.

控制反转的核心是:将对象的创建权交出去,将对象和对象之间关系的管理权交出去,由第三方容器来负责创建与维护

控制反转常见的实现方式:依赖注入(Dependency Injection, DI)

通常,依赖注入的实现方式包括两种:

  • set方法注入
  • 构造方法注入

而Spring框架就是一个实现了IoC思想的框架 IoC可以认为是一种全新的设计模式,但是理论和时间成熟相对较晚,并没有包含在GoF中(GoF:23种设计模式)