代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。
在一些情况下,一个客户不想或者不被允许直接操作一个对象,可通过一种中间的代理对象实现对目标对象的操作:
1 //抽象目标类 2 abstract class Target{ 3 public abstract void method(); 4 } 5 6 //具体目标类 7 class ConcreteTarget extends Target{ 8 9 @Override 10 public void method() { 11 //业务代码 12 } 13 14 } 15 16 //代理类 17 class Proxy extends Target{ 18 19 ConcreteTarget target = new ConcreteTarget(); 20 21 @Override 22 public void method() { 23 //在调用源方法之前的操作 24 target.method(); 25 //在调用源方法之后的操作 26 } 27 28 } 29 30 public class MyTest { 31 32 /** 33 * @param args 34 */ 35 public static void main(String[] args) { 36 Target target = new Proxy(); 37 target.method(); 38 } 39 40 }