首页
社区
课程
招聘
[原创]教你10分钟认识静态代理
发表于: 2020-10-13 15:08 3297

[原创]教你10分钟认识静态代理

2020-10-13 15:08
3297

1、什么是静态代理

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

2、如何实现代理

首先需要创建代理类:代理类里面实现接口。
声明类 ,然后实例化,得到对象。

(1)我们声明一个接口类

图片描述

(2)然后定义一个租房子的方法,具体实现的我们需要再定义一个类。

图片描述

 

这个类实现我们的接口类里面的方法,现在我们的需求需要修改这个方法或者扩展该方法,但是又不能动原有的方法。此时就是需要我们今天学习的代理这个概念了,通过代理来完善或者达到自己的需求

步骤如下

①创建代理类并且实现接口。

图片描述

②声明一个对象后进行实例,得到对象。

图片描述

 

在代理类里面定义两个方法分别是代理前、后。

 

图片描述

③调用里面的方法,做出相应的修改(参数、返回值),这就是代理的作用。

在MainActivity里面实例化代理的类(此时为proxye)该类。

 

图片描述

 

然后运行打印一下log日志信息,现在我们运行看下效果。

 

图片描述

 

现在就很清晰的看到它的一个变化和区别了。这个就是代理的作用!
你学会了吗?


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-10-13 17:03 被文生编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 11
活跃值: (59)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
能否提供apk下载,谢谢
2020-10-13 16:44
0
雪    币: 630
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
可以私聊我
2020-10-13 17:04
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
after
2020-10-17 10:12
0
游客
登录 | 注册 方可回帖
返回