什么时候用代理模式?
- 需要为一个对象在不同的地址空间提供局部代表的时候,可以使用远程代理
- 需要按照需要创建开销很大的对象的时候,可以使用虚代理
- 需要控制对原始对象的访问的时候,可以使用保护代理
- 需要在访问对象执行一些附加操作的时候,可以使用智能指引代理
扩展
代理模式和适配器模式有什么区别?
- 这两个模式有一定的相似性,但也有差异
- 这两个模式有相似性,都是为另一个对象提供简洁性的访问,而且都是从自身以外的一个接口向这个对象转发请求
代理模式和装饰模式有什么区别?
- 这两个模式从实现上相似,但是功能上是不同的。
- 装饰模式的实现和保护代理的实现上是类似的。都是在转调其他对象的起前后执行一定的功能。但是他们的目的和功能都是不同的。
- 装饰模式的目的是为了让你不生成子类就可以给对象添加职责,也就是为了动态地增加功能;而代理模式的主要目的就是控制对对象的访问