AOP的本质和意义
本文章原文在《程序员2005精华本(下)》P66作者:徐昊
该文首先对AOP的概念进行了介绍。
其次介绍了AOP的动态特性。
有两个图比较经典:
下图是面向对象的动态特性原理的一个简化模型。
此处图贴不上,如果需要可以联系我!<!--[if mso & !supportInlineShapes & supportFields]><span
lang=EN-US style='font-size:10.5pt;"Times New Roman";"font-size: 10.5pt;Times New Roman";"><!--[if gte vml 1]>
<![if !mso]>
<table cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><![endif]>
<div>
<div>Message</div>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]>
<![if !mso]>
<table cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><![endif]>
<div>
<div>Message</div>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]>
<![if !mso]>
<table cellpadding=0 cellspacing=0 width="100%">
<tr>
<td><![endif]>
<div>
<div>aObject</div>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]>
<tr>
<td><![endif]>
<div>
<div>aObject</div>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]>
<tr>
<td><![endif]>
<div>
<div>aObject</div>
</div>
<![if !mso]></td>
</tr>
</table>
<![endif]>
<![endif]-->
<!--[if gte vml 1]>
<![endif]--><!--[if !vml]--><!--[endif]-->
<!--[endif]--><!--[if mso & !supportInlineShapes & supportFields]--> 下图是AOP的一个特性原理图。
此处图无法贴上,如果需要可以联系我!<!--[if gte vml 1]>
<![endif]--><!--[if !vml]--><!--[endif]-->
上面两个图比较形象生动的解释了AOP和OOP之间的差异。
接下来的内容介绍了AOP的静态特性。
这里主要介绍了Reflection,理论性很强,看得似懂非懂。后边说AspectJ并不像人们所批评得那样烂,因为它在实现静态特性上有很大得优点。
最后对AOP得发展进行了展望。
发展方向有两个:
动态特性,静态特性。提出前景乐观。
分享到:
相关推荐
Spring框架是Java开发中最受欢迎的框架之一,以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-...理解并掌握Spring的设计理念和核心组件,对于提升软件开发效率和维护性具有重要意义。
总之,"JAVA WEB空项目"提供了一个高效且灵活的开发起点,让开发者可以快速进入实质性的工作,节省了大量时间和精力。对于初学者或团队来说,这是一个宝贵的资源,有助于他们更快地熟悉Java Web开发并投入到实际项目...
由于提供的文件内容中并没有实际的文本内容,而是重复的网址链接和提醒文字,我们无法从这部分内容中提取出任何有实质性意义的知识点。但是,根据文件的标题和描述,我们可以推断出所要讨论的主题是关于Java Web开发...
Java是一种广泛使用的编程语言,尤其在企业级应用开发中占有重要地位。本篇文档主要介绍了Java面试中经常出现的技术...同时,这些知识也是日常开发工作中经常遇到的问题,对提升开发效率和维护代码质量具有重要意义。
- **支持注解的 jar 包**:需要添加 Spring 的 AOP 和 context 相关的 jar 包来支持注解功能。 #### 第七课:AOP (面向切面编程) - **概念**:AOP 是一种编程技术,用于将跨切面的逻辑(如日志记录、事务管理等)从...
数据挖掘技术是一种综合性的信息技术,其主要目标是从大量的、不完全的、有噪声的、模糊的、随机的数据中,提取隐藏的、未知的、具有潜在价值的、有特殊意义的信息和知识的过程。在软件工程领域,数据挖掘技术的应用...
综上所述,基于Java和SSM框架开发的高校教师绩效考核管理系统具有重要的理论意义和实践价值。它不仅能提高绩效考核工作的效率,还能激发教师的积极性,促进学校和个人的共同发展。随着信息技术的不断进步,该系统也...
- **AopProxy**:在 Spring 的 AOP 功能中,AopProxy 接口和其实现类 JdkDynamicAopProxy 及 Cglib2AopProxy 都是代理模式的具体体现。这些类的主要作用是为切入点的目标对象创建一个代理,以便在调用目标方法前后...
- 第5章: 面向方面编程(AOP)与面向服务架构(SOA),介绍了这两种编程范式的原理与应用场景,对于构建灵活可扩展的系统具有重要意义。 - 第6章: 架构之美,探讨了优秀架构设计的原则与实践,帮助读者理解如何构建可...
Struts 2 负责处理业务逻辑和用户界面之间的数据交互,而 Hibernate 和 Spring 分别专注于对象关系映射 (ORM) 和依赖注入 (DI) 及面向切面编程 (AOP)。 - **Struts 2 的核心特性**: - 基于 MVC 设计模式:将应用...
面向切面编程AOP和装饰器 面向切面编程(AOP)是一种编程范式,通过分离横切关注点(如日志记录、权限检查等)来简化代码结构。Python中通常使用装饰器来实现AOP。 **示例**: ```python def log_function_call...
45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 29 46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法...
45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 29 46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法...
45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 29 46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法...
45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 29 二. Jav线程部分 7 46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? ...
45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 32 46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法...
45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 29 二. Jav线程部分 7 46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? ...
60. JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 41 61. MVC的各个部分都有那些技术来实现?如何实现? 42 62. java中实现多态的机制是什么? 42 ...