当前位置: 移动技术网 > IT编程>软件设计>设计模式 > 设计模式----代理模式通俗实例

设计模式----代理模式通俗实例

2018年06月27日  | 移动技术网IT编程  | 我要评论
代理和被代理实现同一个接口 代理者女孩的母亲 被代理者女孩 测试 测试结果 附: Spring里代理模式,Spring AOP 利用了 AspectJ AOP实现的! AspectJ AOP 的底层用了动态代理动态代理有两种目标方法有接口时候自动选用 JDK 动态代理目标方法没有接口时候选择 CGL ...

代理和被代理实现同一个接口

package com.ij34.proxy;

public interface ProxyPattern {
  /*
    代理和被代理的共同点就是要实现同一个接口
    */
    public void eat();
    public void  sleep();
}

 

代理者女孩的母亲

package com.ij34.proxy;
   /*
    代理类
*/
public class GrilsMother  implements  ProxyPattern{

    private ProxyPattern pp;

    public  GrilsMother(ProxyPattern pp){
        this.pp=pp;
    }

    @Override
    public void eat() {
       pp.eat();
    }

    @Override
    public void sleep() {
       pp.sleep();
    }
}

 

被代理者女孩

package com.ij34.proxy;
 /*
   被代理类
*/
public class Gril implements ProxyPattern{
     @Override
     public void eat() {
         System.out.println("我是girl,我在eat");
     }

     @Override
     public void sleep() {
         System.out.println("我是girl,我在sleep");
     }
 }

 

测试

package com.ij34.proxy;

   /*
      测试代理,表面上写女孩女孩母亲吃饭睡觉,实际上写女孩吃饭睡觉
*/
public class ProxyTest {
    public static void main(String[] args) {
        GrilsMother dm = new GrilsMother(new Gril());
        dm.eat();
        dm.sleep();
    }
}

 

测试结果

 


 

附:

Spring里代理模式,Spring AOP 利用了 AspectJ AOP实现的! AspectJ AOP 的底层用了动态代理
动态代理有两种
目标方法有接口时候自动选用 JDK 动态代理
目标方法没有接口时候选择 CGLib 动态代理

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网