转自大话设计模式:

此模式主要以 男孩A 让 男孩B 帮忙送礼物给女孩C, 女孩C只认识B 而不认识A 。典型的代理模式。

1、初版:

追求者

2:被追求者

3、送礼物.因为被追求者并不认识追求者,所以这个方式是有问题的。

第二版:

代理者:

被追求者:

送礼物: 因为这里只有代理对象送礼物,相当于是B直接送给C了。也不对。实际是A要通过B送礼物给C

3、终版:

代理对象和实际对象都有相同的行为。

抽象出公有的接口:

实际对象实现接口:

代理对象代理实际对象,并调用实际对象的行为

被追求者不变:

代理模式测试: 代理对象实例化需要被追求者,相当于实际对象是隐藏在了代理对象之中

 

 总结:

运用1、远程代理:为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同空间地址的事实。

运用2、虚拟代理:

运用3:安全代理:

用于控制真实对象访问时的权限,一般用于对象应该有不同的访问权限的时候

运用4:智能指引:指当调用真实对象时,代理处理另外一些事。

 

总之:顾名思义,   代理就是真实对象的代表