动态代理和静态代理的区别_静态代理和动态代理

c40d40e05baba93a0e0655530c09deb5.png

一:什么是代理模式

1.定义:为其他对象提供一种代理以控制对这个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。

2.例子:最开始接触JDBC操作数据库的时候,业务层每一个方法都需要做以下几件事

(1)打开数据库连接

(2)执行我们想要的操作

(3)关闭数据库连接

此时,我的核心业务是第(2)步,其余两步为辅助业务。当核心业务与辅助业务写在了一个方法中时。会出现以下问题:

①代码业务冗余

②开关数据库连接大量的重复

3.通过代理模式,我们可以抽取出核心业务与辅助业务


二:静态代理和动态代理

静态代理:一个代理只能服务于一种类型的对象,当有1000个业务时,需要1000个静态代理,不利于业务的扩展。

动态代理:一个代理类可以服务于所有的业务对象。


三:动态代理的实现

1.实现InvocationHandle接口,该接口所在位置为:java.lang.reflect.InvocationHandler

2.该接口中有一个方法<

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值