一.什么是动态代理
当需要对功能进行增强的时候就需要用到动态代理。
二.为什么要使用动态代理
当有十处,一百处的代码需要重复十次,一百次时,我们就可以把这些功能封装成一个增强方法,然后在功能方法中进行调用,但是也出现了方法的十处,一百处的调用操作,一旦增强方法名字改变,就需要完成所有调用处代码的修改。或者有一天不需要这些增强操作了,就再次需要在这十处、一百处删除方法调用。所以这种操作不适用于大型的项目开发的需求,此时我们就必须使用Java的动态代理机制。
在Java开发中如果一个类中的方法在基本功能之外需要进行功能扩充或者功能增强,如:事务控制、权限判断、日志记录等等操作,此时可以使用动态代理机制。
三.代码如下
1.因为动态代理必须基于接口,所以首先创建接口
public interface Actor{
void musicAct(int money);
void danceAct(int money);
void yuLeAct(int money);
}
2.定义实现接口的子类,实现接口定义的方法,此方法只需要把核心功能实现即可,其他增强的操作可以在代理类中实现。
3.定义代理类,在代理类中对被代理对象进行方法增强。