您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页2.Spring核心思想

2.Spring核心思想

来源:叨叨游戏网

注意:IOC和AOP不是spring提出的,在spring之前就已经存在,更偏向于理论化。

Spring在技术层次对这两个思想做了非常好的实现(Java)

1 IoC

1.1 什么是IoC

IoC Inversion of Control ( 控制反转 / 反转控制 ) ,注意它是⼀个技术思想,不是⼀个技术实现
 
描述的事情: Java 开发领域对象的创建,管理的问题
 
传统开发⽅式:⽐如类 A 依赖于类 B ,往往会在类 A new ⼀个 B 的对象 IoC 思想下开发⽅式:我们不⽤⾃⼰去 new 对象了,⽽是由 IoC 容器( Spring 框架)去帮助我们实例化对 
 
象并且管理它,我们需要使⽤哪个对象,去问 IoC 容器要即可
 
我们丧失了⼀个权利(创建、管理对象的权利) , 得到了⼀个福利(不⽤考虑对象的创建、管理等⼀系列事情)
 
为什么叫做控制反转?
 
控制:指的是对象创建(实例化、管理)的权利
 
反转:控制权交给外部环境了( spring 框架、 IoC 容器)
 

 

1.2 IoC解决了什么问题

IoC 解决对象之间的耦合问题
 

 

1.3 IoCDI的区别

DI Dependancy Injection (依赖注⼊)
怎么理解:
IOC DI 描述的是同⼀件事情,只不过⻆度不⼀样罢了
 

 

2 AOP

2.1 什么是AOP

AOP: Aspect oriented Programming ⾯向切⾯编程 / ⾯向⽅⾯编程
 
AOP OOP 的延续,从 OOP 说起 OOP 三⼤特征:封装、继承和多态
 
oop 是⼀种垂直继承体系
 

OOP 编程思想可以解决⼤多数的代码重复问题,但是有⼀些情况是处理不了的,⽐如下⾯的在顶级⽗类
 
Animal 中的多个⽅法中相同位置出现了重复代码, OOP 就解决不了
 

 

横切逻辑代码
 

 

横切逻辑代码存在什么问题:
 
横切代码重复问题
 
横切逻辑代码和业务代码混杂在⼀起,代码臃肿,维护不⽅便
 
AOP 出场, AOP 独辟蹊径提出横向抽取机制,将横切逻辑代码和业务逻辑代码分析
 

 

代码拆分容易,那么如何在不改变原有业务逻辑的情况下,悄⽆声息的把横切逻辑代码应⽤到原有的业
 
务逻辑中,达到和原来⼀样的效果,这个是⽐较难的
 
 

2.2 AOP在解决什么问题

在不改变原有业务逻辑情况下,增强横切逻辑代码,根本上解耦合,避免横切逻辑代码重复
 

2.3 为什么叫做⾯向切⾯编程

「切」:指的是横切逻辑,原有业务逻辑代码我们不能动,只能操作横切逻辑代码,所以⾯向横切逻辑
 
「⾯」:横切逻辑代码往往要影响的是很多个⽅法,每⼀个⽅法都如同⼀个点,多个点构成⾯,有⼀个
 
⾯的概念在⾥⾯

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务