面向方法编程AOP学习之一 —— 新知新觉
引言:
?????? 在编程的学习之路, 我们经常在讲着面向过程还是面向对象,但总归是一个程序执行流的方式,代码一行行的执行下去,但对于面向方法编程(AOP),个人感觉,它的实现方式,让人焕然一新。AOP的学习,不仅仅在于一种应用,更是一种思路的学习。我很感叹这种编程方式,在不改变原有的实现方式代码下,增加新的功能。
?????? 在Spring中的AOP提到了AOP可以用来做日志、事务等等。
?????? 如举个简单的例子:对程序中类一个类中的某一接口方法在被调用时,我需要在调用它之前或之后做一些想做的处理呢?而做这些处理的动作在于不改变原有代码的情况下。
?????? 对于它的好处,我深信不疑,我也相信对它的学习,会在我今后的工作中,也起到很大的帮助作用。所以我想深入的去学习它,从了解它的思路,到Spring的AOP实现方式,实现原理。学的不仅仅是一种应用,更是一种思想的改革。
?
?
概念:
?????? 引用百度百科里面的一段描
?
?
?
?
?相关框架:
??????
??? 在AOP的世界里面,留给我们的有很多的框架,其中,如Spring in Action 这本书中提到的三大成熟的框架:
■ AspectJ (http://eclipse.org/aspectj)
■ JBoss AOP (http://labs.jboss.com/portal/jbossaop/index.html)
■ Spring AOP (http://www.springframework.org)
?
感想:
???? ?在AOP的世界里,你可以暇想着,不再会因为业务方多变的需求,而去大量的原有代码中进行修改,经常性的代码修改,出现问题的情况时有发生。但aop的实现方式,让你的实现方式大大简单了,虽然并不是对所有的需求变更都可以用这样的方式实现。
????? 举一简单的例子,如果有一个突然到来的需求说:如果用户新注册成功的时候,就自动发送红包。
??????这时,可以不去更改原来已经方法,而只要在新用户注册成功把信息存入数据库中的那个方法,加入一个切入点,在方法执行完之后,执行相应的处理代码。这个需求就很轻松的实现了,而且,测试简单,不会轻易引入新的bug问题。
?
其他相关:
??? ? 面向方法编程AOP学习之二 —— “原始时代”