代理模式
模式说明
代理模式就是给一个对象提供一个代理,并由代理对象控制对原对象的引用。
在代理模式中,“第三者”代理主要是起到一个中介的作用,它连接客户端和目标对象。
模式结构图

程序示例
说明:男孩给女孩送礼物,通过她的闺蜜来代理完成
代码:
1 class Girl(object):
2 def __init__(self,name):
3 self._name = name
4
5 class Gift(object):
6 def __init__(self,girl):
7 self._target = girl
8 def GiveChocolate(self):
9 pass
10 def GiveFlower(self):
11 pass
12
13 class Boy(Gift):
14 def __init__(self, name, girl):
15 self._name=name
16 super(Boy, self).__init__(girl)
17
18 def GiveChocolate(self):
19 print '%s gives %s a chocolate' %(self._name,self._target._name)
20
21 def GiveFlower(self):
22 print '%s gives %s a flower' %(self._name,self._target._name)
23
24 class ChumProxy(Gift):
25 def __init__(self,boy):
26 self._boy = boy
27
28 def GiveChocolate(self):
29 self._boy.GiveChocolate()
30 def GiveFlower(self):
31 self._boy.GiveFlower()
32
33 if __name__=='__main__':
34 girl = Girl('girl')
35 boy = Boy('boy',girl)
36 chum = ChumProxy(boy)
37 chum.GiveChocolate()
38 chum.GiveFlower()
运行结果:

参考来源:
http://www.cnblogs.com/chenssy/p/3679190.html
http://www.cnblogs.com/wuyuegb2312/archive/2013/04/09/3008320.html
http://www.cnblogs.com/Terrylee/archive/2006/07/17/334911.html
