关闭

Python设计模式(十二)【代理模式】

标签: python设计模式class
1242人阅读 评论(0) 收藏 举报
分类:

生活赋予我们一种巨大的和无限高贵的礼品,这就是青春:充满着力量,充满着期待志愿,充满着求知和斗争的志向,充满着希望信心和青春。

"""代理模式"""
import time

class SalesManager:
    def talk(self):
        print("销售经理准备谈")

class Proxy:
    def __init__(self):
        self.busy = 'No'
        self.sales = None

    def talk(self):
        print("代理检查销售经理的可访问性")
        if self.busy == 'No':
            self.sales = SalesManager()
            time.sleep(0.1)
            self.sales.talk()
        else:
            time.sleep(0.1)
            print("销售经理正忙")

class NoTalkProxy(Proxy):
    def talk(self):
        print("代理检查销售经理的可访问性")
        time.sleep(0.1)
        print("该销售经理也不会跟你说话不论他/她是否正忙")

if __name__ == '__main__':
    p = Proxy()
    p.talk()
    p.busy = 'Yes'
    p.talk()

    p = NoTalkProxy()
    p.talk()
    p.busy = 'Yes'
    p.talk()

运行结果如图:

这里写图片描述

0
0
查看评论

设计模式之python版(四)代理模式

代理模式 应用特性:需要在通信双方中间需要一些特殊的中间操作时引用,多加一个中间控制层。 结构特性:建立一个中间类,创建一个对象,接收一个对象,然后把两者联通起来 UML: #!/usr/bin/env python #encoding: utf-8 class sende...
  • five3
  • five3
  • 2012-05-10 13:01
  • 1494

python设计模式之代理模式

代理模式Proxy模式是一种常用的设计模式,它主要用来通过一个对象(比如B)给一个对象(比如A) 提供’代理’的方式方式访问。比如一个对象不方便直接引用,代理就在这个对象和访问者之间做了中介python的例子你先设想:一个对象提供rgb三种颜色值,我想获得一个对象的rgb三种颜色,但是我不想让你获得...
  • leongongye
  • leongongye
  • 2015-07-29 17:59
  • 366

设计模式:代理模式(Proxy)

代理模式:为其他对象提供一种代理以控制对这个对象的访问。 代理模式中的角色: 抽象主题角色(Subject):声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象。 具体主题角色(RealSubject):也称为委托角色或者被代理角色。定义了代理对象所代表的目...
  • u013256816
  • u013256816
  • 2016-03-29 21:38
  • 4359

【设计模式】代理模式详解

前言 博主只是一名大三学生,文章内容难免有不足之处,欢迎批评指正。   正文 转载请注明出处: http://blog.csdn.net/h28496/article/details/46707621 发 表 时 间: 2015年7月1日   什么是代理模式? 为其他对象提供一种...
  • H28496
  • H28496
  • 2015-07-01 10:45
  • 1376

23种设计模式(6):代理模式

先看一个例子,是有关于打游戏杀怪兽的。 //先定义一个游戏者接口 public interface IGamePlayer { //登陆游戏 public void login(String user, String password); //杀怪,网络游戏的主要角色 ...
  • psp0001060
  • psp0001060
  • 2016-02-04 22:05
  • 935

设计模式(结构型)之代理模式(Proxy Pattern)

代理模式是常用的结构型设计模式之一,当无法直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。根据代理模式的使用目的不同,代理模式又可以分为多种类型,例如保护代理、远程代理、虚拟代理、缓冲代理等,它们应用于...
  • yanbober
  • yanbober
  • 2015-05-04 18:48
  • 5677

最常用的设计模式---代理模式(C++实现)

代理模式:为其他对象提供一种代理以控制对这个对象的访问
  • lh844386434
  • lh844386434
  • 2014-01-09 17:23
  • 2046

六 设计模式之代理模式(或称委托模式)

<br />定义   为其它对象提供一种代理以控制对这个对象的访问<br />类图<br /><br /><br /><br /><br /><br />通用代码 抽象主题类 pu...
  • guojun828
  • guojun828
  • 2011-01-20 23:26
  • 7151

JAVA设计模式之代理模式

【代理模式应用场景举例】 比如在玩“极品飞车”这款游戏,如果游戏者手中的金钱达到了一定的数量就可以到车店买一部性能更高的赛车,那么这个卖车的“车店”就是一个典型的“汽车厂家”的“代理”,他为汽车厂家“提供卖车的服务”给有需求的人士。从面向对象的方面考虑,“销售汽车的代理”也是一个对象,那么这个对象...
  • jason0539
  • jason0539
  • 2014-04-05 07:07
  • 23442

浅析JAVA设计模式之代理模式(二)

1 动态代理          在上一篇文章《浅析JAVA设计模式之代理模式(一)》中,已经简单介绍了代理模式的定义,以及分析和实现了静态代理类,接下来我们分析动态代理。     动...
  • minidrupal
  • minidrupal
  • 2014-05-02 22:14
  • 1614
    个人资料
    • 访问:1296116次
    • 积分:18603
    • 等级:
    • 排名:第593名
    • 原创:312篇
    • 转载:932篇
    • 译文:123篇
    • 评论:297条
    博客专栏
    文章分类
    打赏
    如果你觉得我的文章对您有用,请随意打赏。 微信 支付宝