码迷,mamicode.com
首页 > 编程语言 > 详细

大话涉及模式Python实现-代理模式

时间:2017-11-02 13:10:04      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:送礼物   bsp   __init__   style   实体   log   auth   nbsp   echo   

代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 __author__ = Andy
 5 
 6 """
 7 大话设计模式
 8 设计模式——代理模式
 9 代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问
10 实现:戴励 替 卓贾易 送礼物给 娇娇
11 模型:
12 #公共接口类
13 class InterFace:
14     def request(self):
15         pass
16 #真实类
17 class RealSubject(InterFace):
18     def request(self):
19         print ‘RealSubject request‘
20 #代理类 调用真实类的内部方法
21 class ProxySubject(InterFace)
22     def request(self):
23         self.real = RealSubject()
24         self.real.request()
25 """
26 
27 
28 # 送礼物接口
29 class GiveGift(object):
30     # 送洋娃娃
31     def GiveDolls(self):
32         pass
33 
34     # 送花
35     def GiveFlowers(self):
36         pass
37 
38     # 送巧克力
39     def GiveChocolate(self):
40         pass
41 
42 
43 # 被追求者类
44 class SchoolGirl(object):
45     def __init__(self, name):
46         self.name = name
47 
48 
49 # 追求者类
50 class Pursuit(GiveGift):
51     def __init__(self, Girl):
52         self.Girl = Girl
53 
54     def GiveDolls(self):
55         print self.Girl.name, 送你洋娃娃
56 
57     def GiveFlowers(self):
58         print self.Girl.name, 送你花
59 
60     def GiveChocolate(self):
61         print self.Girl.name, 送你巧克力
62 
63 
64 # 代理类
65 class Proxy(GiveGift):
66     def __init__(self, Girl):
67         self.proxy = Pursuit(Girl)
68 
69     # 送洋娃娃
70     def GiveDolls(self):
71         self.proxy.GiveDolls()
72 
73     # 送花
74     def GiveFlowers(self):
75         self.proxy.GiveFlowers()
76 
77     # 送巧克力
78     def GiveChocolate(self):
79         self.proxy.GiveChocolate()
80 
81 
82 if __name__ == __main__:
83     jiaojiao = SchoolGirl(jiaojiao)
84     daili = Proxy(jiaojiao)
85     daili.GiveDolls()
86     daili.GiveFlowers()
87     daili.GiveChocolate()

上面的类的设计如下图: 

技术分享

代理类Proxy引用代理的实体Pursite,提供与Pursite相同的接口来代替实体

 


作者:Andy
出处:http://www.cnblogs.com/onepiece-andy/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

大话涉及模式Python实现-代理模式

标签:送礼物   bsp   __init__   style   实体   log   auth   nbsp   echo   

原文地址:http://www.cnblogs.com/onepiece-andy/p/python_proxy_pattern.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!