Java静态代理详解

    xiaoxiao2023-09-27  179

    第一:Java静态代理的实现(本质上就是一个面向对象组合功能)

    逻辑图:

    在上图当中,有这么几个概念:

    目标对象:Target为目标对象,即真正实现业务的对象.

    代理对象:ProxyDemo为代理对象.

    增强:在目标对象基础上添加的功能称之为增强.(即为被装饰者添加新的功能)

    我们先定义一个接口:InterfaceA

    public interface InterfaceA { public void smile();

    public void cry();

    }

    实现一个目标对象类:Target

    public class Target implements InterfaceA { /** * Target为目标对象:真正实现业务的对象. * * */

    @Override public void smile() { System.out.println("爱笑的女孩运气不会太差!"); } @Override public void cry() { System.out.println("男人哭吧哭吧不是罪!"); }

    }

    在目标对象类的基础上实现我们的ProxyDemo的代理对象类.

    public class ProxyDemo implements InterfaceA {

    public Target target ; public ProxyDemo() { } public ProxyDemo(Target target) { this.target = target; //目标对象作为真正的属性成员. } @Override public void smile() { System.out.println("=============>smile start=========>"); target.smile(); System.out.println("=============> smile end=========>"); } @Override public void cry() { System.out.println("=============>cry start=========>"); target.cry(); System.out.println("=============> cry end=========>"); }

    }

    启动类:

    package com.zmy.proxy1;

    public class test1 { public static void main(String[] args) {

    ProxyDemo proxy = new ProxyDemo(new Target()); proxy.target.cry(); proxy.cry(); proxy.target.smile(); proxy.smile(); }

    }

    运行结果:

    =>cry=====> =>cry start=> =>cry=> => cry end=> =>smile=> =>smile start=> =>smile=> =====> smile end=>

    最新回复(0)