静态代理

在了解动态代理之前,我们首先需要介绍一下静态代理。简单来说,代理就是用一个代理类来封装一个委托类。

代理的好处:

可以隐藏委托类的具体实现;

可以在不改变委托类的情况下增加额外的操作。

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

静态代理一般的实现方式为:委托类和代理类都实现同一个接口或者是继承自同一个父类,然后在代理类中保存一个委托类的对象引用(父类或者父类接口的对象引用),通过给构造器传入委托类的对象进行初始化,在同名方法中通过调用委托类的方法实现静态代理

静态代理通常用于对原有业务逻辑的扩充。比如持有二方包的某个类,并调用了其中的某些方法。然后出于某种原因,比如记录日志、打印方法执行时间,但是又不好将这些逻辑写入二方包的方法里。所以可以创建一个代理类实现和二方方法相同的方法,通过让代理类持有真实对象,然后在原代码中调用代理类方法,来达到添加我们需要业务逻辑的目的。

这其实也就是代理模式的一种实现,通过对真实对象的封装,来实现扩展性。

一个典型的代理模式通常有三个角色,这里称之为**代理三要素**

1.共同的接口


2.被代理类

3.代理类


让土豪测试一下:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值