为了账号安全,请及时绑定邮箱和手机立即绑定

模式的秘密---代理模式

难度中级
时长 2小时 0分
学习人数
综合评分9.70
184人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.7 逻辑清晰
  • jdk动态代理

    查看全部
  • jdk动态代理

    查看全部
  • 四、cglib动态代理

    1、针对类来实现代理。

    2、对指定目标类产生一个子类,通过方法拦截技术拦截所有父类方法的调用。

    3、final修饰的类不能被继承,所以不能被代理。

    4、class CglibProxy implements MethodInterceptor

    intercept(Object obj,Method m,Object[] args,MethodProxy proxy);

    参数说明:

    obj:目标类的实例

    m:目标方法的反射对象

    args:方法的参数

    proxy:代理类的实例


    查看全部
  • 三、JDK动态代理

    1、动态代理的概念:动态产生代理,实现对不同类和不同方法的代理。

    2、JDK动态代理:

        a、创建事务处理器,实现InvocationHandler接口,覆写invoke方法

    invoke(Object proxy,Method method,Object[] args)

    参数说明:

    proxy   代理对象

    Method  被代理对象的方法

    args    方法的参数

    b、创建被代理的类以及接口

    c、调用Proxy的静态方法,创建代理类(这个类是实现了被代理类的接口的)

    newProxyInstance(ClassLoader loader,Class[] interfaces,InvocationHandler h)

    参数说明:

    loader:被代理类的类加载器

    interfaces:被代理类实现的接口

    h:事务处理器

    d、通过代理调用被代理的方法

    查看全部
  • 三、了解JDK动态代理

    1、概念:动态产生代理,实现对不同类,不同方法的代理。

    查看全部
  • 4、聚合比继承更适合代理模式

    如果使用继承的方式实现代理功能的叠加,代理类则会无限的膨胀。

    使用聚合的方式实现代理功能的叠加和组合比较方便实用。

    查看全部
  • 二、静态代理概念及实现

    1、两种实现方式

    a、静态代理:代理和被代理对象在代理之前是确定的。他们都是实现相同的接口或者继承相同的抽象类。

    b、动态代理

    2、继承的方式实现静态代理

    代理者继承被代理者,对所代理的方法进行改造

    Car1  implements  Moveable{}

    Car2  extends  car1{}

    3、聚合的方式实现静态代理

    继承同一个接口,并持有被代理的对象

    Car3  implements  Moveable{

            private  Car  car;

            public Car3(Car  car){

                this.car = car

            }

    }

    查看全部
  • 一、代理模式概念及分类

    1、概念

    为其它对象提供一种代理以控制对这个对象的访问

    代理对象起到中介作用,可去掉功能服务或增加额外的服务

    2、常见的几种代理模式

         a、远程代理

         b、虚拟代理

         c、保护代理

         d、智能引用代理

    查看全部
  • jdk代理的类必须实现某些接口,cglib的代理通过子类的方式实现代理
    查看全部
  • Proxy.newProxyInstance用于加载代理对象实例
    查看全部
  • InvocationHandler有一个invoke方法,有三个参数,分别代表被代理对象、被代理方法、方法参数
    查看全部
  • 聚合方式比继承方式实现代理模式更好
    查看全部
  • 使用聚合方式,实现相同接口,引用原始对象,在相同的方法中调用引用对象的被代理方法
    查看全部
  • 静态代理让真实对象与代理对象实现相同接口且代理对象继承真实对象
    查看全部
  • eclipse中shift+ctrl+o引入包
    查看全部

举报

0/150
提交
取消
课程须知
本课程是 Java 开发课程的高级课程,希望各位小伙伴们在学习本课程之前,了解以下内容: 1)初步具备面向对象的设计思维 2)了解多态概念 3)了解反射
老师告诉你能学到什么?
1、代理模式概念机分类 2、代理模式应用场景 3、掌握静态代理、动态代理运用 4、理解JDK动态代理实现原理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!