静态代理(关于代理模式和静态代理的必读文章)

 2025-08-13 06:03:01  阅读 378  评论 0

摘要:1 代理模式1.1 定义代理模式:对某一个目标对象提供它的代理对象,并且由代理对象控制对原对象的引用。例如,我们想访问某个对象A时,不能直接访问,需要由对象A的代理对象A Proxy进行代理。通俗来说,A Proxy我们可以认为是A的助理、中介、对外联络人。1.2 作用隔离作用:可

1 代理模式

1.1 定义

代理模式:对某一个目标对象提供它的代理对象,并且由代理对象控制对原对象的引用。

例如,我们想访问某个对象A时,不能直接访问,需要由对象A的代理对象A Proxy进行代理。通俗来说,A Proxy我们可以认为是A的助理、中介、对外联络人。

关于代理模式和静态代理的必读文章

1.2 作用

隔离作用:可以防止对目标对象的直接访问,实现目标对象与外部的隔离,从而提供安全保障等。例如:在代理中增加权限身份验证。

扩展功能:代理对象可以在目标对象的基础上增加功能。例如:Java切面操作通过建立代理实现。

直接替换:代理对象可以直接替换目标对象的功能,带来全新的实现方式。例如:RPC通过建立代理,直接实现了不存在的接口实现(消费者中只有接口,没有实现类,RPC直接把对实现类的访问转走了)。

2 静态代理

静态代理就是按照代理模式书写的代码,其特点是代理类和目标类在代码中是确定的,因此是静态的。

我们举例子进行介绍。

首先,写出目标类和代理类共同需要实现的接口,我们假设只有一个打招呼的功能。

关于代理模式和静态代理的必读文章

目标类实现如下:

关于代理模式和静态代理的必读文章

代理类实现如下:

关于代理模式和静态代理的必读文章

测试方法如下:

关于代理模式和静态代理的必读文章

我们看到输出如下:

pre words
hello Tom
post words

通过静态代理,我们在目标方法的前后增加了一些操作。

但是,静态代理显然不够灵活。

必须要为每个对象创建一个实现了相同接口的代理对象,并且代理对象中的方法也要设置的和原对象一致。因此任何目标对象的变动,代理对象都要变 所有代码写死了,不够灵活,不能在运行时改变。

这时,就需要动态代理。他能在代码运行时动态地改变某个对象的代理,并且能为代理对象动态地增加方法、增加行为。

在后面的文章中,我们会介绍动态代理的实现。


欢迎关注我们,不错过每期的原创干货!

版权声明:我们致力于保护作者版权,注重分享,被刊用文章【静态代理(关于代理模式和静态代理的必读文章)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;

原文链接:https://www.yxiso.com/zhishi/2088508.html

标签:静态代理

发表评论:

关于我们
院校搜的目标不仅是为用户提供数据和信息,更是成为每一位学子梦想实现的桥梁。我们相信,通过准确的信息与专业的指导,每一位学子都能找到属于自己的教育之路,迈向成功的未来。助力每一个梦想,实现更美好的未来!
联系方式
电话:
地址:广东省中山市
Email:beimuxi@protonmail.com

Copyright © 2022 院校搜 Inc. 保留所有权利。 Powered by BEIMUCMS 3.0.3

页面耗时0.0355秒, 内存占用1.91 MB, 访问数据库24次

陕ICP备14005772号-15