0%

Spring启示录

  • 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

    ![](../../../../../Running Noob/计算机/Typora笔记/笔记-git仓库/Java-SSM-notebook/img/Spring/依赖倒置原则示例.png)

1.3 控制反转IoC

  • 什么是 IoC
    • IoC(Inversion of Control) 控制反转,是面向对象编程中的一种设计思想,可以用来降低代码之间的耦合度,符合依赖倒置原则。
    • 控制反转的核心思想:
      • 将对象的创建权交出去
      • 将对象和对象之间关系的管理权交出去
      • 对象的创建和对象之间关系的维护都由第三方容器来负责
    • 控制反转中的反转是两件事:
      1. 不在程序中采用硬编码的方式来 new 对象了,而是将 new 对象的权利交出去。
      2. 不在程序中采用硬编码的方式来维护对象的关系了,对象之间关系的维护权交出去了。
    • 控制反转思想的实现:依赖注入

依赖注入DI

  • 控制反转的实现方式有多种,其中比较重要的叫做:依赖注入(Dependency Injection,简称 DI)。

    依赖注入,用于实现对象之间关系的建立

  • 控制反转是思想,依赖注入是这种思想的具体实现。

  • 依赖注入 DI,又包括常见的两种方式:

    1. set 注入(执行 set 方法给属性赋值)。
    2. 构造方法注入(执行构造方法给属性赋值)。
  • 依赖注入中 “依赖”是什么意思?“注入”是什么意思?

    • 依赖:A 对象和 B 对象的关系。
    • 注入:是一种手段,通过这种手段,可以让 A 对象和 B 对象产生关系。
  • 依赖注入:对象 A 和对象 B 之间的关系,靠注入的手段来维护。而注入包括:“set 注入” 和 “构造注入”。

---------------The End---------------