代理

简介: 概念代理:代替处理,又称委托模式。实现:为目标对象提供(包装)了一个代理,这个代理可以控制对目标对象的访问。外界不直接访问目标对象,而是访问代理对象,再由代理对象调用目标对象。

概念

代理:代替处理,又称委托模式。

实现:为目标对象提供(包装)了一个代理,这个代理可以控制对目标对象的访问。外界不直接访问目标对象,而是访问代理对象,再由代理对象调用目标对象。

20191121112334607.png

分类:静态代理、动态代理

静态代理

代理对象持有目标对象的一个句柄,

其实就是将目标对象的引用作为代理对象的成员变量。

缺点:因为要对目标对象的每个方法都进行静态编码包装,所以目标对象中有多少个方法,静态代理对象中就需要有多少个方法。目标对象中方法过多的时候,代理对象就会显的臃肿,也不便于维护和拓展。

代码实现

20191121112519487.png

动态代理

所谓动态代理其实就是产生一个被处理器全面监听的代理对象出来,这个代理对象的每次方法调用都会被处理器拦截下来。

20191121112727294.png

代码实现:

四要素:接口、实现类(被代理对象)、处理器、代理对象。

接口

2019112111315217.png

实现类:

2019112111315875.png

处理器:

实现InvocationHandler接口,持有被代理对象。

核心方法——invoke,调用被代理对象的相应目标方法。

20191121113206338.png

测试:

调用Proxy类中的newProxyInstance方法生成代理对象。

传入参数——处理器、实现类类加载器、实现类的父接口。

20191121113213181.png

目录
相关文章
|
机器学习/深度学习 算法 前端开发
【数据挖掘】袋装、AdaBoost、随机森林算法的讲解及分类实战(超详细 附源码)
【数据挖掘】袋装、AdaBoost、随机森林算法的讲解及分类实战(超详细 附源码)
281 0
|
缓存 搜索推荐 安全
互联网人不可或缺的资源搜索引擎
我们改变不了世界,是世界改变了我们。Designed by QianYu1.猎手导航搜索网站简介史上最强大的资源搜索引擎,猎手导航集搜索引擎搜索、社交搜索、BT磁力搜索、学术文档搜索...
12887 0
|
8月前
|
算法 图形学 数据安全/隐私保护
基于NURBS曲线的数据拟合算法matlab仿真
本程序基于NURBS曲线实现数据拟合,适用于计算机图形学、CAD/CAM等领域。通过控制顶点和权重,精确表示复杂形状,特别适合真实对象建模和数据点光滑拟合。程序在MATLAB2022A上运行,展示了T1至T7的测试结果,无水印输出。核心算法采用梯度下降等优化技术调整参数,最小化误差函数E,确保迭代收敛,提供高质量的拟合效果。
|
8月前
|
前端开发 安全 Java
Manland:开源即生产力!避免90%新手踩坑!这套租房系统“房东/租客/管理三端”开源方案提升开发效率300%
今天介绍一款基于SpringBoot的房屋租赁系统——Manland,涵盖管理员、房东、租客三大角色,提供房屋管理、订单处理、权限控制等功能。采用MyBatis、Shiro、Thymeleaf等技术,确保系统高效安全。
263 0
|
10月前
|
设计模式 IDE 数据可视化
UML中类图的介绍与使用
类图是 UML 中用于展示系统静态结构的重要工具,包括类、接口及其关系。类图有助于系统可视化、团队沟通、发现设计问题、文档化系统和辅助开发工具。类图的三大元素是类、接口和关系,其中关系又细分为关联、聚合、组合、继承、实现和依赖。类图在设计模式学习和实际开发中非常重要,许多现代 IDE 都支持从类图生成代码或从代码生成类图。
469 2
|
12月前
|
Java
Throwable 类常用方法有哪些?
【10月更文挑战第13天】Throwable 类的方法在不同的异常类型中可能会有一些特殊的实现和用法。比如,一些自定义异常类可能会重写某些方法来提供更符合自身需求的功能。
|
开发框架 安全 .NET
Web安全-一句话木马
Web安全-一句话木马
256 3
|
12月前
|
Web App开发 数据可视化 JavaScript
input标签的type属性汇总
input标签的type属性汇总
401 0
|
定位技术
ArcGIS投影:地理坐标系转为投影坐标系
本文介绍在ArcMap软件中,对矢量图层或栅格图层进行投影(即将地理坐标系转为投影坐标系)的原理与操作方法~
1498 1
ArcGIS投影:地理坐标系转为投影坐标系
|
小程序 前端开发
保健品商城小程序模板源码
保健品商城小程序模板源码
998 3