栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 设计模式之【代理】 学习与掌握

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 设计模式之【代理】 学习与掌握

文章目录
    • 什么是代理
    • 代理分类
    • 两种代理的优缺点及应用场景
    • 实践理解
    • 两种代理主要区别

  • 文章讲 静态代理 和 动态代理 两种代理。

什么是代理
  • 对其他对象提供一种代理,用来控制对这个被代理对象的访问。

简单来说,在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。


代理分类
  • 静态代理
  • 动态代理

两种代理的优缺点及应用场景
  • 静态代理

【优点】

使用者只关心业务逻辑,不需要着眼内部实现,方便后期的变更和部分共用代码的统一处理。

【缺点】

当代理类中出现的被代理类越来越多时,内部就会显得非常臃肿。反而不利于管理阅读。

【应用】

一些第三方框架的代理,便后后期替换或者定制化变更。

  • 动态代理

【优点】

拥有静态代理的优点,同时省去了很多代码,并且扩展性更强,通过反射可以执行任意类型的被代理类方法。

【缺点】

只能代理实现了接口的类,而没有实现接口的类就不能实现动态代理。 通过反射在性能上可以会有一定程度上的性能损耗。

【应用】

被代理类庞大时,需要在某些方法执行前后处理一些事情时,亦或接口类与实现类经常变动时(因为使用反射所以方法的增删改并不需要修改invoke方法)。


实践理解

这里我就不自己写demo给同学们详细讲解了,不过给篇文章的链接,同学们可以好好的读读,实践下,会收货很大的。

JAVA静态代理和动态代理理解


两种代理主要区别
  • 静态代理通常只代理一个类,动态代理是代理一个接口下的多个实现类。

  • 静态代理事先知道要代理的是什么,而动态代理不知道要代理什么东西,只有在运行时才知道。

  • 动态代理是实现 JDK 里的 InvocationHandler 接口的 invoke 方法,但注意的是代理的是接口,也就是你的业务类必须要实现接口,通过 Proxy 里的newProxyInstance 得到代理对象。


技术永不眠!我们下期见!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292650.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号