13

直到现在我才知道代理模式,最近阅读了这篇文章,说虚拟代理基本上用于延迟内存密集型组件的对象创建过程,从而加快应用程序的速度。

但是在阅读了那篇文章之后,看起来代理模式和虚拟代理模式是一回事。我是对的还是我理解错了?

4

3 回答 3

10

有不同类型的代理模式。虚拟代理就是其中之一。其他(来自 GOF)是保护代理、远程代理、智能参考。来自GOF:

远程代理为不同地址空间中的对象提供本地代表。

虚拟代理按需创建昂贵的对象。

保护代理控制对原始对象的访问。当对象应该具有不同的访问权限时,保护代理很有用。

智能引用是在访问对象时执行附加操作的裸指针的替代品

于 2011-07-25T16:33:36.013 回答
0

GoF 设计模式一书提到了几种代理,虚拟代理(按需创建昂贵的对象)就是其中之一。

其他类型的代理是远程代理(为不同地址空间中的对象提供本地接口)、保护代理(处理访问权限)和智能引用(在访问对象时执行附加操作)。

因此,虽然虚拟代理肯定是代理,但并非所有代理都是虚拟的。

于 2011-07-25T16:36:12.310 回答
0

我们可以在创建Custom Camera的情况下使用虚拟代理模式。

想想如果一个页面中有 3-4 次单击选项来捕获图像,那么每次单击捕获图像时都创建相机对象是不好的,因为初始化表面视图(用于在 android 中创建相机的视图)需要时间。所以我们可以在这种情况下使用虚拟代理模式来不时地使用相同的实例,并在视图被破坏时破坏这个相机对象。

于 2017-03-16T06:26:22.803 回答