静态代理介绍:代理模式这种设计模式是一种使用代理对象来执行目标对象的方法并在代理对象中增强目标对象方法的一种设计模式。代理对象代为执行目标对象的方法,并在此基础上进行相应的扩展。看起来是有点拗口,首先介绍一个原则:开闭原则(对扩展开放,对修改关闭)。
元素: 共同接口、代理对象、目标对象
代码如下:
接口:
public interface Boss { public void sign(); }
//目标实现类
public class BossImpl implements Boss { @Override public void sign(){ System.out.println("-----boss sign"); } }
//代理实现类
public class BossProxy implements Boss { Boss boss=null; public BossProxy(Boss boss){ this.boss = boss; } public void sign(){ if(boss != null){ System.out.println("----BossProxy start"); boss.sign(); System.out.println("----BossProxy end"); } } }
测试:
public class ProxyMain { public static void main(String[] args){ Boss boss = new BossImpl(); BossProxy proxy = new BossProxy(boss); proxy.sign(); } }
结果:
----BossProxy start
-----boss sign
----BossProxy end