辅助一张图以说明,AOP字面意思就是面向切面编程,这么做的目的是让主程序在不知道切面存在的情况下,切面就可以帮助主程序完成其想要完成的功能,而不影响主程序的对象属性,以达到更好的面向对象的效果,听起来有点绕,举个例子说明:
例如你在编写一个用户登录的程序,主程序就是用户登录,用户登录你主要目的就是验证用户名、密码,找到用户的权限等事情,但是除了主要需要做的事情之外你可能还需要记录一下用户登录的日志,这个时候记录日志本身已经离开了登录的范畴了,势必就应该是另一个对象需要干的事情,这个时候就需要切面技术了,如上图你的程序是登录,则记录日志就是切面,他们交叉的地方就叫切点,你需要做的事情就是告诉切面,你程序的切点在哪里,那么切面就会自动帮助你完成记录日志这个工作了,这个思维方式就是面向切面编程也就是AOP。
那么他有什么好处呢?再比如,你的系统有很多功能都需要记录日志,那么你都只需要在想记录日志的时候告诉切面,你的切点在哪,切面就会自动的帮助你记录下所需要的日志。
能写一段小代码吗?
@彬彬@科比:你有写过filter么,就是类似于那种东西,不过切面可以做更多事情,你可以控制切面在执行切点之前做什么,之后做什么,或者干脆就环绕切点执行。
@彬彬@科比: 更加详细的东西你可以看看下面这篇文章,可以让你对AOP有个更全面的认识
就是写一个类,这个类可以控制别的类……
这个类里可以写很多的占位符……
比如说:世界信息组织规定都用xml做为数据交换,于是C#写了很多方法来解析xml,Java也是,python也是。
这个xml其实就是AOP的思想。
一个人的思想本来是独立的,由本人自己来决定该干什么不该干什么,但是当这个人受控制于另一个人的思想的时候,就是控制者的来控制人的时候,这就是AOP了,
就是说用框架来控制框架,用类来控制类,用接口来控制接口,用电脑来控制电脑,用网页来编写网页的时候就是AOP
举个列子咧
@彬彬@科比:
我给你说……我举个例子你也不明白的……
看你的样子是写代码不多,实际工作中,你慢慢就明白了……
我现在怎么写你都不明白的……
@田麦成: 你就是一傻B。。我操你妈个B。。
@田麦成: 你就是一废人。。废材
@彬彬@科比:
哎……没出息的孩子啊……看你实在没有什么要说的话了……就开始YY了
@田麦成: 会就会。不会没人叫你回答。。别再这里教训人。。你还没有那个资格。懂不。!别自以为是。。
你可以看下设计模式中的代理模式,当然代理模式只是实现AOP的一种方式。