面向切面编程——java
来源:互联网 发布:水仙花c语言 编辑:程序博客网 时间:2024/05/29 16:52
-AOP(面向切面编程)-
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。
-产生原因-
我们知道:面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。这样做的好处是降低了代码的复杂程度,使类可重用(有利必有弊,有舍必有得)。但是人们也发现,在分散代码的同时,也增加了代码的重复性。比如说,我们在两个类中都需要在每个方法中做日志。面向对象的设计方法:必须在两个类的方法中都加入日志的内容。也许他们是完全相同的,但就是因为面向对象的设计让类与类之间无法联系(类之间是独立的,不同于类的调用【或者造一个日志类】),而不能将这些重复的代码统一起来。也许有人会说:我们可以将这段代码写在一个独立的类独立的方法里,然后再在这两个类中调用(类似于工具类)。但是,这样一来,这两个类跟我们上面提到的独立的类就有耦合了,它的改变会影响这两个类。【问题来了】那么,有没有什么办法,能让我们在需要的时候,随意地加入代码呢?这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。
-基础概念-
-AOP与OOP-
从OOP角度分析,我们关注业务的处理逻辑,是属于纵向的行为,从AOP角度分析,我们关注对象行为发生
时的问题,是属于横向的行为。
-应用环境-
AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(监控函数的调用,捕获异常的发生),例如事务处理、日志管理、权限控制、安全控制等,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。
-优势-
-运行流程-
- 面向切面编程——java
- Spring面向切面编程——什么是面向切面编程
- aop—面向切面编程
- aop—面向切面编程
- java面向切面编程
- 面向切面的 Spring —— 什么是面向切面编程?
- Java笔记——面向切面编程(AOP模式)
- java模拟面向切面编程
- 面向切面编程——Aop
- AOP-面向切面编程——AspectJ
- AOP——面向切面编程
- 【JAVA笔记——器】Spring面向切面编程 Aspect Oriented Programming with Spring
- java 面向切面编程的例子
- Java面向切面编程(AOP模式)
- 面向切面编程(AOP)——基本术语
- 面向切面编程(AOP)——基本术语
- (九)Spring详解——AOP面向切面编程实现
- Spring——aop(面向切面编程)
- Android AsyncTask源码分析
- java map value值是引用的变量?
- change eclipse default text encoding to UTF-8 to support php i18n
- 程序性能数据采集工具汇总
- ffmpeg 从mp4上提取H264的nalu
- 面向切面编程——java
- 程序员的七种武器
- android 圆角按钮
- Hibernate对单表的CRUD操作
- 一个简单的优先级队列实现
- linux添加用户,赋予权限
- MCIMX6Q-SDB 试用简介1
- 前台 JSON对象转换成字符串 相互转换 的几种方式
- 数据归一化的作用--在svm 训练的时候特别有用