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

1.2 作用
隔离作用:可以防止对目标对象的直接访问,实现目标对象与外部的隔离,从而提供安全保障等。例如:在代理中增加权限身份验证。
扩展功能:代理对象可以在目标对象的基础上增加功能。例如:Java切面操作通过建立代理实现。
直接替换:代理对象可以直接替换目标对象的功能,带来全新的实现方式。例如:RPC通过建立代理,直接实现了不存在的接口实现(消费者中只有接口,没有实现类,RPC直接把对实现类的访问转走了)。
静态代理就是按照代理模式书写的代码,其特点是代理类和目标类在代码中是确定的,因此是静态的。
我们举例子进行介绍。
首先,写出目标类和代理类共同需要实现的接口,我们假设只有一个打招呼的功能。

目标类实现如下:

代理类实现如下:

测试方法如下:

我们看到输出如下:
pre words hello Tom post words
通过静态代理,我们在目标方法的前后增加了一些操作。
但是,静态代理显然不够灵活。
必须要为每个对象创建一个实现了相同接口的代理对象,并且代理对象中的方法也要设置的和原对象一致。因此任何目标对象的变动,代理对象都要变 所有代码写死了,不够灵活,不能在运行时改变。这时,就需要动态代理。他能在代码运行时动态地改变某个对象的代理,并且能为代理对象动态地增加方法、增加行为。
在后面的文章中,我们会介绍动态代理的实现。
欢迎关注我们,不错过每期的原创干货!
版权声明:我们致力于保护作者版权,注重分享,被刊用文章【静态代理(关于代理模式和静态代理的必读文章)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;
工作时间:8:00-18:00
客服电话
电子邮件
beimuxi@protonmail.com
扫码二维码
获取最新动态
