您的位置:首页 > 编程语言 > Python开发

python设计模式(四)--代理模式(上)

2016-05-12 00:00 585 查看
摘要: 代理模式: 为其他对象提供一种代理以控制对这个对象的访问.

最近正在持续更新源码库,代码都是参考大话设计模式翻成python版,完整代码片段请到github上去下载.
https://github.com/zhengtong0898/python-patterns
参考:

书籍<<大话设计模式>> 第7章

Python 3.x

[code=plain]# -.- coding:utf-8 -.-
# __author__ = 'zhengtong'
# 代理模式: 为其他对象提供一种代理以控制对这个对象的访问.

class GiveGift:

"""
Python没有interface类, 但是可以通过这种方式来实现类似的接口类.
也就是说在python里, 就是公共的接口不是必须的.
定义公共接口的意义是让子类可以得到规范.
"""

def give_dolls(self):
raise NotImplementedError

def give_flowers(self):
raise NotImplementedError

def give_chocolate(self):
raise NotImplementedError

class Pursuer(GiveGift):

def __init__(self, mm):
self.mm = mm

def give_dolls(self):
print(self.mm.name, " 送你洋娃娃")

def give_flowers(self):
print(self.mm.name, " 送你鲜花")

def give_chocolate(self):
print(self.mm.name, " 送你巧克力")

class SchoolGirl:

def __init__(self, name):
self.name = name

class Proxy(GiveGift):

def __init__(self, to_user):
self.gg = Pursuer(to_user)

def give_dolls(self):
self.gg.give_dolls()

def give_flowers(self):
self.gg.give_flowers()

def give_chocolate(self):
self.gg.give_chocolate()

def main():
jiaojiao = SchoolGirl('李娇娇')
daili = Proxy(jiaojiao)

daili.give_dolls()
daili.give_flowers()
daili.give_chocolate()

if __name__ == '__main__':
main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: