AOP是什么
来源:互联网 发布:避暑山庄四知书屋 编辑:程序博客网 时间:2024/04/29 20:23
转:
AOP是什么?
Aspect-oriented programming (AOP) ,从名字上说类似oop Object Oriented Programming。AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。而什么是方面哪?
方面也可以认为是关注点,在一个系统中存在很多关注点,比如记录日志,授权等。面向对象的趋势是使系统耦合越来越小,设计模式也是如此。然而,这些关注点是最普通的功能,也许会贯穿系统始终,使系统的开发,尤其是维护带来很多的问题,到处重复着相同的代码。
比如,记录日志:
- public interface MyBizInterface {
- public void myBizMethod();
- }
- public class MyBizObject implements MyBizInterface {
- private Logger logger = Logger.getLogger(getClass().getName());
- public void myBizMethod(){
- try {
- logger.info("start to execute...");
- //do something here
- logger.info("end processing...");
- } catch (Exception e){
- logger.info("exception happends..."+e.getMessage());
- }
- }
- }
上面的代码很简单,一个简单的业务逻辑myBizMethod(),当然我们需要记录日志,但是这样商业逻辑的代码和日志记录代码混合在一起,这给日后的维护带来一定的困难,同时存在大量的代码重复。
同样是方面(关注点),应该有主次轻重之分,比如,上面的例子,显然业务逻辑比较重要,不过你非说日志记录重要也行。所以,我们应该把日志记录代码(次要)从重要的业务逻辑分离出来。要将这些代码分离就涉及到一个问题,我们必须知道商业逻辑代码何时被调用,这样我们好插入日志记录代码。一般来说要截获一个方法,我们可以采用回调方法或者动态代理。动态代理一般要更加灵活一些,目前多数的AOP Framework也大都采用了动态代理来实现。
有了AOP,我们就可以拦截主要的业务逻辑,把我们不是特别重要的代码【注入】到里面去,AOP防止了代码变得混乱。
- AOP是什么?
- AOP是什么?
- AOP是什么?
- AOP是什么?
- AOP是什么?
- AOP是什么?
- AOP是什么?
- AOP是什么?
- AOP是什么?
- AOP是什么?
- AOP是什么
- AOP是什么
- AOP是什么?
- AOP是什么
- AOP是什么?
- AOP是什么?
- AOP是什么?
- AOP是什么?
- 忽略图片透明区域的事件(Flex)
- GCC-3.4.6源代码学习笔记(47)
- C# Split String Examples
- Visual Basic .NET 模块五 菜单栏、工具栏、状态栏(文章在资源/习题/里)
- sql_add_remove_descripton
- AOP是什么
- 高并发
- main 引数
- 有用的系统相关
- 调试sql语句的一个小方法
- 一起来学OpenMP(8)——线程同步之互斥锁函数
- AS3 Flex基础知识100条
- IIS 1.0 升级 2.0
- Linux系统视频解码问题