centos7安装 拓展培训公司 树莓派USB Java开发手册 微信直播 Hibernate CK docker安装 go mysqli jackson ip vue表单提交 jquery第一个子元素 mysql操作日志 安卓小程序源码 查看kafka消费情况 hbase集群搭建 plsql连接mysql 升级python版本 idea批量替换快捷键 wps文件修复工具下载 python如何注释 python中def的用法 python安装 python简易教程 java中正则表达式 配置java开发环境 java程序 java时间类型 java文件读取 java获取url参数 linux云服务器 php连接mssql js四舍五入 js删除数组指定元素 ipad锁屏 防沉迷助手 无限弹窗bat 幽灵行动多少钱
当前位置: 首页 > 学习教程  > 编程语言

详解IoC 和 AOP

2020/7/24 9:29:01 文章标签:

首先声明:IoC & AOP 不是 Spring 提出来的,它们在 Spring 之前其实已经存在了,只不过当时更加偏向于理论。Spring 在技术层次将这两个思想进行了很好的实现。

1.什么是 IoC?

IoC (Inversion of control )控制反转/反转控制。它是一种思想不是一个技术实现。描述的是:Java 开发领域对象的创建以及管理的问题。

例如:现有类 A 依赖于类 B

传统的开发方式 :往往是在类 A 中手动通过 new 关键字来 new 一个 B 的对象出来
使用 IoC 思想的开发方式 :不通过 new 关键字来创建对象,而是通过 IoC 容器(Spring 框架) 来帮助我们实例化对象。我们需要哪个对象,直接从 IoC 容器里面过去即可。
从以上两种开发方式的对比来看:我们 “丧失了一个权力” (创建、管理对象的权力),从而也得到了一个好处(不用再考虑对象的创建、管理等一系列的事情)
为什么叫控制反转
控制 :指的是对象创建(实例化、管理)的权力
反转 :控制权交给外部环境(Spring 框架、IoC 容器)

2.IoC 解决了什么问题

IoC 的思想就是两方之间不互相依赖,由第三方容器来管理相关资源。这样有什么好处呢?

对象之间的耦合度或者说依赖程度降低;
资源变的容易管理;比如你用 Spring 容器提供的话很容易就可以实现一个单例。
使用 IoC 的思想,我们将对象的控制权(创建、管理)交有 IoC 容器去管理,我们在使用的时候直接向 IoC 容器 “要” 就可以了
IoC 和 DI 别再傻傻分不清楚

IoC(Inverse of Control:控制反转)是一种设计思想 或者说是某种模式。这个设计思想就是 将原本在程序中手动创建对象的控制权,交由 Spring 框架来管理。 IoC 在其他语言中也有应用,并非 Spring 特有。IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是个 Map(key,value),Map 中存放的是各种对象。

IoC 最常见以及最合理的实现方式叫做依赖注入(Dependency Injection,简称 DI)。

3.什么是 AOP

AOP:Aspect oriented programming 面向切面编程,AOP 是 OOP(面向对象编程)的一种延续。
AOP 提出横向抽取机制,将横切逻辑代码和业务逻辑代码分离
在这里插入图片描述
AOP 主要用来解决:在不改变原有业务逻辑的情况下,增强横切逻辑代码,根本上解耦合,避免横切逻辑代码重复。
AOP 为什么叫面向切面编程
切 :指的是横切逻辑,原有业务逻辑代码不动,只能操作横切逻辑代码,所以面向横切逻辑

面 :横切逻辑代码往往要影响的是很多个方法,每个方法如同一个点,多个点构成一个面。这里有一个面的概念


本文链接: http://www.dtmao.cc/news_show_50087.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?