首先我们来看一下思维导图,实现静态代理最最关键的一点是要把握住:代理类的通知(增强处理)直接写在传入的目标方法执行的前后的。
实现静态代理的核心类是代理类:
实现静态代理的步骤:
1、创建主题接口
package com.liwei.staticproxy; public interface Subject { void miai(); }
2、创建被代理的类
package com.liwei.staticproxy; public class Person implements Subject{ private String name; public Person(String name) { super(); this.name = name; } public void miai() { System.out.println(name + "去相亲了。。。。。。。。"); } }
3、创建代理类
package com.liwei.staticproxy; public class ProxyPerson implements Subject{ private Subject target; public ProxyPerson(Subject target) { super(); this.target = target; } public void miai() { System.out.println("前置通知。。。。。。。。。。。。。。。。。"); this.target.miai(); System.out.println("后置通知。。。。。。。。。。。。。。。。。"); } }
4、写测试类
package com.liwei.staticproxy; public class Test { public static void main(String[] args) { Person liwei = new Person("liwei"); ProxyPerson proxy = new ProxyPerson(liwei); proxy.miai(); } }
静态代理的测试代码并不复杂,在这里就不给出源代码压缩包了。