SpringAOP的基本概念以及和OOP的不同和比较

简介: SpringAOP的基本概念以及和OOP的不同和比较

SpringAOP的基本概念以及和OOP的不同和比较


AOP(面向切面编程)与OOP(面向对象编程)

AOP提供了与AOP不同的抽象软件结构的视角,

程序的基本单元
OOP
AOP 切面

在业务处理代码中通常有日志记录、性能统计、安全控制、事物处理、异常处理等操作。

尽管,使用OOP可以通过封装或继承的方式达到代码的重用,但仍然有同样的代码分散在各个方法中。

因此,采用OOP处理日志记录等操作:

(1)增加了开发者的的工作量

(2)提高了升级维护的困难

为了解决此类问题,AOP思想产生了

**AOP采用:**横向抽取机制,即将分散在各个方法中的的重复代码提取出来,然后在程序编译或者运行阶段将这些抽取出来的代码应用到需要执行的地方。这是OOP无法办到的,因为OOP实现的是父子关系的纵向重用。

需要注意的是AOP不是OOP的替代品,而是OOP的补充,他们是相辅相成的。

附:AOP横向抽取机制的与切面的关系图

相关文章
|
IDE Unix Shell
芯驰(E3-gateway)开发板环境搭建以及调试遇到问题的解决
芯驰(E3-gateway)开发板环境搭建以及调试遇到问题的解决
|
运维 安全 NoSQL
如何使用官方最新源代码部署yapi?
我们之前使用的yapi 1.9.2,存在高危漏洞,攻击者可利用该漏洞在目标服务器上执行任意代码,导致服务器被攻击者控制,植入木马或挖矿病毒。通过目前网络上给出的安全解决方案,总感觉解决的不彻底,yapi 官方仓库已经修复了沙箱提权的问题,我尝试使用官方最新源代码部署yapi,遇到好多问题,顺手记录下来,无论部署新环境或者升级新版本,日后方便自己回顾或者他人参考。
1450 0
如何使用官方最新源代码部署yapi?
|
算法
递归算法实例应用(四)
递归算法实例应用(四):(POJ 4017)爬楼梯、(POJ 1664)放苹果
4163 0
|
索引 Python
NumPy 基本切片和索引(一)
ndarrays可以使用标准Python x[obj]语法对其进行索引 ,其中x是数组,obj是选择方式。有三种可用的索引:字段访问,基本切片,高级索引。究竟是哪一个取决于obj。
232 0
|
机器学习/深度学习 数据挖掘 TensorFlow
TensorFlow 中文资源精选,官方网站,安装教程,入门教程,实战项目,学习路径。
Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解。
2122 0
|
存储 人工智能
unsigned/signed int/char类型表示的数值范围
一个32位的signed int类型整数表示的范围:-2^31~2^31-1 一个32位的unsigned int类型整数表示的范围: 0~2^32-1   一个8位的signed char类型整数表示的范围:-2^7~2^7-1 一个8位的unsigned char类型整数表示的范围: 0...
2045 0
|
1天前
|
数据采集 人工智能 安全