zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【转】日本留学——修士申请注意事项
    【转】日本留学读研究生和修士有什么区别?申请误区有哪些
    【转】为什么说学一门小语种,就能打开新世界的大门?
    【转】TED:两年一门外语--她总结了学外语的秘诀
    【转】为什么一定要学一门外语?
    【转】学完标准日本语初级至高级,可以过日语n1吗?
    【转】去日本语言学校前,日语应该达到几级呢?
    Cordova学习
    敏捷开发实录(二)
    Mac端博客发布工具推荐
  • 原文地址:https://www.cnblogs.com/baxianhua/p/10870612.html
Copyright © 2011-2022 走看看