最近在重新学习java,学到了java的设计模式的代理模式.
代理模式分为静态代理和动态代理
下面是我的学习心得:
静态代理:实现了一遍静态代理后,总的来说就是,代理类和被代理类实现了同一个接口,属于相同的类型,拥有相同的方法,代理类持有被代理类的引用,在代理类的方法里调用被代理类的方法就是静态代理的原理.
代码展示
public interface ZuFang { public void zf(); }
public class PeopleZF implements ZuFang { @Override public void zf() { System.out.println("租房子"); } }
public class ZFProxy implements ZuFang { private ZuFang zfz; public ZFProxy() { super(); this.zfz = new PeopleZF(); } @Override public void zf() { before(); zfz.zf(); atfer(); } private void before() { System.out.println("开始租房"); } private void atfer() { System.out.println("租房结束"); } }
public class RopxyFactory { public static ZuFang getZuFang(){ return new ZFProxy(); } }
public class Test001 { @Test public void test1() { ZuFang zuFang = RopxyFactory.getZuFang(); zuFang.zf(); } /** * 静态代理: 代理类和被代理类都实现头一个接口,这样 两个类都有头一个方法. 在代理类中加入被代理类的对象. 代用代理类的方法中调用被代理类的方法. * 这样就到达了调用被代理类的方法,同事调用代理类的效果,而且可以在被代理类的方法调用前后加入一些其他的方法. * */ }
动态代理
分析:动态代理要实现