AOP 简介
AOP(Aspect-Oriented Programming, 面向切面编程): 是一种新的方法论, 是对传统的 OOP(Object-Oriented Programming, 面向对象编程)的补充
AOP 的主要编程对象是切面(aspect)
在应用 AOP 编程时, 仍然需要定义公共功能, 但可以明确的定义这个功能在哪里, 以什么方式应用, 并且不必修改受影响的类
AOP 的好处:
- 每个事物逻辑位于一个位置, 代码不分散, 便于维护和升级
- 业务模块更简洁, 只包含核心业务代码
通过实例讲解AOP
单纯的术语也许不能让你清楚的明白 AOP,那么接下来我会通过一个实例来更加清晰的描述:
假设我们现在来实现一个计算器,我们可以很容易的写出:
package com.dht.aop_annotation;
/**
* @author dht925nerd@126.com
*/
public interface Calculator {
int add(int x, int y);
int sub(int x, int y);
int mul(int x, int y);
int div(int x, int y);
}
package com.dht.aop_annotation;
/**
* @author dht925nerd@126.com
*/
public class CalculatorImpl implements Calculator {
private int result;
@Override
public int add(int x, int y) {
result = x + y;
return result;
}
@Override
public int sub(int x, int y) {
result = x - y;
return result;
}
@Override
public int mul(int x, int y) {
result = x * y;
return result;
}
@Override
public int div(