静态代理(JAVA设计模式)
代理:一个角色代表另一个角色来完成某些特定的功能,当我们需要在一个方法的前后添加逻辑的时候(日志,事务等)可以使用代理。
静态代理可以使用两种方式实现:一种是继承,一种是聚合。
1.定义接口Moveable
2.实现类Tank
3.在Tank的move方法前后添加时间日志(继承方式)或系统日志(聚合方式)
//第二种:以聚合的方式实现代理类,为方法前后添加日志public class LogProxy implements Moveable{Moveable m;public LogProxy(Moveable m) {this.m = m;}public void move() {System.out.println("move log start...");m.move();System.out.println("move log end...");}public static void main(String[] args) {Moveable mm = new Tank();mm = new LogProxy(mm);//这个代理类只能给Moveable接口的类进行代理,我们需要创建任意接口的代理类(动态代理)mm.move();}}