代理模式(Proxy)
意图:
为其他对象提供一种代理以控制对这个对象的访问
适用性:
在需要用比较通用和复杂的对象指针代替简单的指针的时候, 使用代理模式.
下面是一些可以使用代理模式常见的情况:
1)远程代理
2)虚代理
3)保护代理
4)智能指引
效果:
代理模式在访问对象时引入一定程度的间接性. 根据代理的类型, 附加的间接
性有多种用途:
1)远程代理可以隐藏一个对象存在于不同地址空间的事实
2)虚代理可以进行最优化, 例如根据要求创建对象
3)保护代理和智能引用都允许在访问一个对象时有一些附加的内务处理
实现:
代理模式可以利用以下一些语言特性:
1)重载C++中的存取运算符
2)使用Smalltalk中的doesNotUnderstand
意图:
为其他对象提供一种代理以控制对这个对象的访问
适用性:
在需要用比较通用和复杂的对象指针代替简单的指针的时候, 使用代理模式.
下面是一些可以使用代理模式常见的情况:
1)远程代理
2)虚代理
3)保护代理
4)智能指引
效果:
代理模式在访问对象时引入一定程度的间接性. 根据代理的类型, 附加的间接
性有多种用途:
1)远程代理可以隐藏一个对象存在于不同地址空间的事实
2)虚代理可以进行最优化, 例如根据要求创建对象
3)保护代理和智能引用都允许在访问一个对象时有一些附加的内务处理
实现:
代理模式可以利用以下一些语言特性:
1)重载C++中的存取运算符
2)使用Smalltalk中的doesNotUnderstand
3)代理并不总是需要知道实体的类型