为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如:异常处理,日志、计算方法等等
编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标的相同方法,并在调用方法时加上系统功能的代码
采用工厂模式和配置文件的方式进行管理则不需要修改客户端
//实现的是接口
Collection collections = (Collection)Class.forName(className).newInstance();
--------------------
AOP
Aspect Oriented Program
系统中的交叉业务,AOP的目标就是要使交叉业务模块化
功能贯彻到很多模块中