美文网首页
代理模式总结

代理模式总结

作者: Sophia_dd35 | 来源:发表于2018-07-19 14:48 被阅读17次

代理模式的定义

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

代理模式的使用场景

当无法或不想直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,委托对象与代理对象需要实现同一个接口

根据代理类生成的时间不同可以分为静态代理和动态代理两种

静态代理

静态代理中的代理类和委托类会实现同一接口

在程序运行之前,代理类就已经存在了。

  • 1个静态代理 只服务1种类型的目标对象
  • 协调调用者和被调用者,降低了系统的耦合度
  • 代理对象作为客户端和目标对象之间的中介,起到了保护目标对象的作用
  • 在目标对象较多的情况下,若采用静态代理,则会出现 静态代理对象量多、代码量大,从而导致代码复杂的问题

动态代理

动态代理类实现了InvocatuonHandler接口,并通过反射机制动态的生成代理者的对象,具体如下:

Proxy.newProxyInstance(loader, interfaces,invocationHandler)
  • 1.通过为Proxy类指定类加载器对象 和 一组接口,从而创建动态代理类的字节码;再根据类字节码创建动态代理类
  • 2.通过反射机制获取动态代理类的构造函数(参数类型 = 调用处理器接口类型)
  • 3.通过动态代理类的构造函数 创建 代理类实例

在程序运行时,代理类才产生。

  • 只需要1个动态代理类就可以解决创建多个
  • 相比静态代理中 直接调用目标对象方法,动态代理则需要先通过java反射机制 从而 间接调用目标对象方法,所以效率低

参考文献

Java反射
代理模式(静态代理 and 动态代理)

相关文章

  • 代理模式(为了Rxjava,Retrofit....)

    以下都是本人收集和总结的内容: 1.什么是代理模式 代理模式(Proxy Pattern)也称作为委托模式。在生活...

  • 代理模式总结

    代理模式的定义 为其他对象提供一种代理以控制对这个对象的访问 代理模式的使用场景 当无法或不想直接访问某个对象或访...

  • 代理模式总结

    代理模式概念: 相关角色:代理接口(Subject);代理类(ProxySubject);委托类(RealSubj...

  • 代理模式(Proxy Pattern):动态代理 - 最易懂的设

    前言 今天我来全面总结Android开发中最常用的设计模式 - 代理模式中的动态代理模式 其他设计模式介绍1分钟全...

  • 10.28-11.3周复盘

    一、技术 1.总结了并发编程系列课程知识并完成博客输出。 2.回顾设计模式——代理模式的原理。分静态代理、动态代理...

  • 23种模式 - 结构型

    结构型模式主要总结了一些类或对象组合在一起的经典结构。 代理模式 代理模式(Proxy Design Patter...

  • 代理设计模式

    代理设计模式 代理设计模式的总结:如果你想监听别人的一些行为,那么你要成为别人的代理如果你想告诉别人一些事情,那么...

  • Java静态代理与动态代理

    前言 最近在学习设计模式,个人觉得代理模式比较重要,就在网上找了很多代理模式相关的知识点,总结如下,希望可以帮到有...

  • AIDL的真相-Android中的代理(Proxy)模式

    简介 我在公司负责的模块,是以本地代理模式的形式提供给其他人使用的, so, 总结了一下关于代理模式的概念.代理两...

  • 代理模式在Android中的应用

    一 什么是代理模式 关于 设计模式 设计模式是人们在解决软件开发过程中总结出来的智慧结晶。代理模式也是一种解决实际...

网友评论

      本文标题:代理模式总结

      本文链接:https://www.haomeiwen.com/subject/uqlspftx.html