• python 设计模式之代理模式


    1.代理模式是什么?

    为其他对象提供一种代理以控制对这个对象的访问

    通俗的来讲代理模式就是我们生活中常见的中介

     代理模式在日常生活中很常见,比如,你去杂货店买一个插座,而不是去生产插座的工厂去买。再比如,你去访问某个网站,你并没有访问权限,但你可以通过代理去访问这个网站,然后代理再把内容传给你。

     

    2.为什么要用代理模式?

     在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用

    3.代理模式的组成

    代理模式有3个必要的元素:

    真实的对象(执行业务逻辑,被代理的对象)

    代理类(用户请求的一个接口,对真实目标的保护)

    用户(获取任务的用户请求)

    4.代理模式用在什么地方

    1.远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。

    2.虚拟代理,是根据需要创建开销大的对象。通过它来存放实例化需要很长时间的真是对象。用于惰性求值,将一个大计算量对象的创建延迟到真正需要的时候进行。例如html中,图片需要load很久,所以通过虚拟代理来代替真实的图片

    3.安全代理,或叫保护/防护代理:控制对敏感对象的访问。用来控制真实对象访问时的权限

    4.智能(引用)代理:在对象被访问时执行额外的动作。此类代理的例子包括引用计数和线程安全检查。是指当调用真实的对象时,代理处理另外一些事

    5.例子

     

    6.小结

    代理模式主要使用了Python的多态和继承,干活的是被代理类,代理类主要是接活,你让我干活,好,我交给幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢?同根就成,大家知根知底,你能做啥,我能做啥都清楚得很,同样一个(基类)接口。

    参考

     https://www.cnblogs.com/Xjng/p/3878839.html  111

    https://www.cnblogs.com/lizhitai/p/4476091.html

    https://cloud.tencent.com/developer/news/394367

    https://blog.csdn.net/liuskyter/article/details/80362722

    https://www.cnblogs.com/onepiece-andy/p/python_proxy_pattern.html

    https://blog.csdn.net/ruguowoshiyu/article/details/80967560

  • 相关阅读:
    高并发计算服务器数量
    Java子线程中操作主线程Private级别数据
    Java线程并发中常见的锁--自旋锁 偏向锁
    Java锁之自旋锁详解
    Java多线程:向线程传递参数的三种方法
    TPS、并发用户数、吞吐量关系
    C/C++中near和far的区别
    qt的pos()和globalpos()(globalpos是相对于桌面的)
    如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置
    QComboBox实现复选功能(三种方法:嵌套QListWidget, 设置QStandardItemModel, 设置Delegate)
  • 原文地址:https://www.cnblogs.com/baxianhua/p/10870612.html
Copyright © 2020-2023  润新知