在很多情况下,代理模式是有益的。下面来看看一些不同的代理。
保护代理
它根据某些条件控制对真实主题的访问。
虚拟代理
虚拟代理用于实例化昂贵的对象。代理在实现中管理真实主体的生命周期。它决定实例创建的需要以及何时重用它。虚拟代理优化性能。
缓存代理
缓存代理用于缓存对真实主题的昂贵调用。代理可以使用许多缓存策略。其中一些是通读、通写、缓存和基于时间的。缓存代理用于提高性能。
远程代理
远程代理用于分布式对象通信。远程代理通过调用本地对象方法在远程对象上执行。
智能代理
智能代理用于实现对对象的日志调用和引用计数。