python中代理模式分为几种_Python设计模式之代理模式实例详解
本文實(shí)例講述了Python設(shè)計(jì)模式之代理模式。分享給大家供大家參考,具體如下:
代理模式(Proxy Pattern):為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設(shè)計(jì)模式
設(shè)計(jì)模式——代理模式
代理模式(Proxy Pattern):為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問
實(shí)現(xiàn):戴勵(lì) 替 卓賈易 送禮物給 嬌嬌
模型:
#公共接口類
class InterFace:
def request(self):
pass
#真實(shí)類
class RealSubject(InterFace):
def request(self):
print 'RealSubject request'
#代理類 調(diào)用真實(shí)類的內(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()
運(yùn)行結(jié)果:
jiaojiao 送你洋娃娃
jiaojiao 送你花
jiaojiao 送你巧克力
上面的類的設(shè)計(jì)如下圖:
代理類Proxy引用代理的實(shí)體Pursite,提供與Pursite相同的接口來代替實(shí)體
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的python中代理模式分为几种_Python设计模式之代理模式实例详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 农行金穗海航联名卡审核多久下卡
- 下一篇: python接口自动化测试框架实战从设计