Java设计模式中的静态代理比较简单,静态代理的实现是通过实现与目标对象相同的借口,并在类中维护一个代理对象。通过构造器传入对象,赋值给代理对象,从而执行代理对象实现的接口方法,进行接口调用其的业务和接口调用后的业务扩展。可以做到不对目标对象进行修改,而达到扩展业务的方式。
接口
public interface Person { void eat(); }
目标对象
public class Student implements Person { @Override public void eat() { System.out.println("吃饭"); } }
代理对象
public class StudentProxy implements Person { private Student st; public StudentProxy(Person p) { if(p instanceof Student) { st = (Student) p; } } @Override public void eat() { System.out.println("吃饭起要洗手"); st.eat(); System.out.println("吃饭后收拾桌子"); } }
测试类
public class StaticProxyTest { public static void main(String[] args) { Student student = new Student(); StudentProxy studentProxy = new StudentProxy(student); studentProxy.eat(); } }