javase模式3

本文详细介绍了代理模式的概念及其三种类型:远程代理、虚拟代理和保护代理。远程代理用于跨JVM对象访问;虚拟代理用于延迟加载等场景;保护代理用于控制对对象的访问权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

十。代理模式:

   代理模式总的来说就是控制对象的访问。

  分为:远程代理,虚拟代理,保护代理

  远程代理:

           当你要取的别的JVM上的对象的来进行操作的时候。本地和远程对象在本地的一个虚拟对象进行访问,虚拟对象通过网络传给远程对象在它本地的一个虚拟对象,远程的虚拟对象再和具体的远程对象进行交互。rmi可实现这些步骤。

虚拟代理:

           当你在一个画面上要显示一幅画的时候,可能这幅画很大,要很长时间才能从网络上下载下来。这个时候你不想自己的界面显示停止,可以用到虚拟代理,当图片正在下载的时候,显示 “正在下载中”,当下载完成的时候 则显示图片。

当没有下载完成时,虚拟代理充当图片的角色

保护代理:

   你要访问的对象必须经过一个代理去转发。Java有内置的实现。

 

大致说下代理的类图结构:

                     

                          interface

                          doSomething()

 

                           ^             ^

                           |              |

                   实现  |       实现 |

                           |              |

                    具体实例       代理

 

                          ^              |

                           |              |有一个实例

                            ------------

这样的类图结构可以让访问具体实例的对象都可以访问代理,因为具体对象和代理实现了同一个接口

你可能说这和适配器模式不是差不多么,适配器模式实现了2个不同的接口,而代理实现了一个相同的接口。

 而java的内置的代理和这个有点区别,

                 接口 代理和真实对象都实现这个接口,代理现在不拥有一个真实对象的引用,而是拥有一个继承自invocationHandler接口的类,而这个类拥有一个真实对象的引用。

复合模式:

    就是很多模式在一起合作,典型的复合模式是mvc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值