美文网首页
结构型设计模式 - 代理模式

结构型设计模式 - 代理模式

作者: 千反田爱瑠爱好者 | 来源:发表于2018-09-09 16:23 被阅读7次
  1. 由于各种原因直接访问对象可能会带来问题(如远程机器不能直接访问);
  2. 可为其他对象提供一种代理以控制对这个对象的访问(如添加快捷方式代替遍历多层目录结构);
  3. 代理模式优势在于角色的指责清晰,高扩展性、智能化;但同时可能由于多了中间层会导致请求处理速度变慢,且复杂场景下代理模式实现比较困难。
class SenderBase:
    def __init__(self):
        pass

    def send_something(self, something):
        pass


class SendClass(SenderBase):
    def __init__(self, receiver):
        super().__init__()
        self.receiver = receiver

    def send_something(self, something):
        print("send " + something + ' to ' + self.receiver.name)


class AgentClass(SenderBase):
    def __init__(self, receiver):
        super().__init__()
        self.send_obj = SendClass(receiver)

    def send_something(self, something):
        self.send_obj.send_something(something)


class ReceiveClass:
    def __init__(self, someone):
        self.name = someone


if '__main__' == __name__:
    receiver = ReceiveClass('YWH')
    agent = AgentClass(receiver)        # 在代理人中添加消息接收者
    agent.send_something('agentinfo')   # 由代理人代替发送者向接收者发消息
    print(receiver.__class__)
    print(agent.__class__)

相关文章

  • 【设计模式】结构型设计模式汇总

    结构型设计模式汇总 结构型设计模式名称 结构型设计模式主要包括 7 大类: 代理模式 桥接模式 装饰器模式 适配器...

  • Android进阶之光——设计模式(结构型设计模式)

    结构型设计模式 结构型设计模式是从程序的结构上解决模块之间的耦合问题 代理模式 代理模式也被称为委托模式。 定义:...

  • spring框架中的设计模式二

    在这篇文章中,介绍4种设计模式。结构型设计模式:代理和复合模式。行为型设计模式:策略和模板方法模式。 代理模式 面...

  • 理解java的代理模式和动态代理

    代理模式 代理模式是23种设计模式之一,属于结构型模式。代理模式是最常见也是最常用的模式之一,只不过有很多设计模式...

  • Android设计模式——代理模式

    1.代理模式介绍 代理模式(Proxy Pattern),是七大结构型设计模式之一。 2.代理模式的定义 ...

  • 设计模式-代理模式

    代理模式介绍 代理模式(Proxy Pattern)也称为委托模式,是结构型设计模式的一种。在现实生活中用到代理的...

  • 设计模式-代理模式

    1.代理模式的介绍 代理模式(Proxy Pattern)也称为委托模式,是结构型设计模式的一种。在我们生活中代理...

  • 设计模式(六)代理模式

    1.代理模式简介 代理模式介绍 代理模式也叫委托模式,是结构型设计模式的一种。在现实生活中我们用到类似代理模式的场...

  • 代理模式——基础的设计

      代理模式(Proxy Pattern)也称委托模式(Delegate Pattern),是一种结构型设计模式,...

  • 设计模式之代理模式

    设计模式之代理模式 简介 代理模式是结构型设计模式。 当无法或不想直接访问某个对象或访问某个对象存在困难时可以通过...

网友评论

      本文标题:结构型设计模式 - 代理模式

      本文链接:https://www.haomeiwen.com/subject/uqhdgftx.html