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

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

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


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

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

程序的基本单元
OOP
AOP 切面

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

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

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

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

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

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

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

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

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

相关文章
|
4月前
|
Java 程序员
Java中的继承和多态:理解面向对象编程的核心概念
【8月更文挑战第22天】在Java的世界中,继承和多态不仅仅是编程技巧,它们是构建可维护、可扩展软件架构的基石。通过本文,我们将深入探讨这两个概念,并揭示它们如何共同作用于面向对象编程(OOP)的实践之中。你将了解继承如何简化代码重用,以及多态如何为程序提供灵活性和扩展性。让我们启程,探索Java语言中这些强大特性的秘密。
|
7月前
|
设计模式 算法 Java
Java一分钟之-设计模式:策略模式与模板方法
【5月更文挑战第17天】本文介绍了策略模式和模板方法模式,两种行为设计模式用于处理算法变化和代码复用。策略模式封装不同算法,允许客户独立于具体策略进行选择,但需注意选择复杂度和过度设计。模板方法模式定义算法骨架,延迟部分步骤给子类实现,但过度抽象或滥用继承可能导致问题。代码示例展示了两种模式的应用。根据场景选择合适模式,以保持代码清晰和可维护。
134 1
|
4月前
|
设计模式 前端开发 Java
【十三】设计模式~~~行为型模式~~~中介者模式(Java)
文章详细介绍了中介者模式(Mediator Pattern),这是一种对象行为型模式,用于封装一系列对象的交互,降低系统耦合度,并简化对象之间的交互关系。通过案例分析、结构图、时序图和代码示例,文章展示了中介者模式的组成部分、实现方式和应用场景,并讨论了其优点、缺点和适用情况。
【十三】设计模式~~~行为型模式~~~中介者模式(Java)
|
7月前
|
分布式计算 Java Scala
Scala:面向对象、Object、抽象类、内部类、特质Trait(二)
Scala:面向对象、Object、抽象类、内部类、特质Trait(二)
98 0
|
存储 数据安全/隐私保护 Python
面向对象编程(OOP):理解类、封装性的关键概念
面向对象编程(OOP):理解类、封装性的关键概念
156 0
|
设计模式 存储 安全
设计模式:深入研究单例设计模式(Java版)
创建型模式的主要关注点是怎样创建对象,它的主要特点是将对象的创建与使用分离。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关的工厂来完成。就像我们去商场购买商品时,不需要知道商品是怎么生产出来一样,因为它们由专门的厂商生产。 单例(Singleton)模式:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。 例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。 单例是一种常用的设计模式,属于创建型设计模式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确
面向对象(OOP)、类的基本概念
面向对象基本概念 - 我们之前学习的编程方式就是 **面向过程** 的 - **面相过程** 和 **面相对象**,是两种不同的 **编程方式**
|
XML Java 数据安全/隐私保护
springAOP中的基本概念
springAOP中的基本概念
112 0
springAOP中的基本概念
|
安全 Java 自动驾驶
java面试题:在SpringAOP中,关注点和横切关注的区别是什么?
java面试题:在SpringAOP中,关注点和横切关注的区别是什么?
1250 0
java面试题:在SpringAOP中,关注点和横切关注的区别是什么?
【小家java】POP(面向过程编程)、OOP(面向对象编程)、AOP(面向切面编程)三种编程思想的区别和联系(下)
【小家java】POP(面向过程编程)、OOP(面向对象编程)、AOP(面向切面编程)三种编程思想的区别和联系(下)
【小家java】POP(面向过程编程)、OOP(面向对象编程)、AOP(面向切面编程)三种编程思想的区别和联系(下)