python中代理模式分为几种_Python设计模式之代理模式实例详解
本文實例講述了Python設計模式之代理模式。分享給大家供大家參考,具體如下:
代理模式(Proxy Pattern):為其他對象提供一種代理以控制對這個對象的訪問
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設計模式
設計模式——代理模式
代理模式(Proxy Pattern):為其他對象提供一種代理以控制對這個對象的訪問
實現(xiàn):戴勵 替 卓賈易 送禮物給 嬌嬌
模型:
#公共接口類
class InterFace:
def request(self):
pass
#真實類
class RealSubject(InterFace):
def request(self):
print 'RealSubject request'
#代理類 調(diào)用真實類的內(nèi)部方法
class ProxySubject(InterFace)
def request(self):
self.real = RealSubject()
self.real.request()
"""
# 送禮物接口
class GiveGift(object):
# 送洋娃娃
def GiveDolls(self):
pass
# 送花
def GiveFlowers(self):
pass
# 送巧克力
def GiveChocolate(self):
pass
# 被追求者類
class SchoolGirl(object):
def __init__(self, name):
self.name = name
# 追求者類
class Pursuit(GiveGift):
def __init__(self, Girl):
self.Girl = Girl
def GiveDolls(self):
print self.Girl.name, '送你洋娃娃'
def GiveFlowers(self):
print self.Girl.name, '送你花'
def GiveChocolate(self):
print self.Girl.name, '送你巧克力'
# 代理類
class Proxy(GiveGift):
def __init__(self, Girl):
self.proxy = Pursuit(Girl)
# 送洋娃娃
def GiveDolls(self):
self.proxy.GiveDolls()
# 送花
def GiveFlowers(self):
self.proxy.GiveFlowers()
# 送巧克力
def GiveChocolate(self):
self.proxy.GiveChocolate()
if __name__ == '__main__':
jiaojiao = SchoolGirl('jiaojiao')
daili = Proxy(jiaojiao)
daili.GiveDolls()
daili.GiveFlowers()
daili.GiveChocolate()
運行結(jié)果:
jiaojiao 送你洋娃娃
jiaojiao 送你花
jiaojiao 送你巧克力
上面的類的設計如下圖:
代理類Proxy引用代理的實體Pursite,提供與Pursite相同的接口來代替實體
希望本文所述對大家Python程序設計有所幫助。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的python中代理模式分为几种_Python设计模式之代理模式实例详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 农行金穗海航联名卡审核多久下卡
- 下一篇: 农行金穗海航联名卡申请条件及额度