生活中的例子:

班主任让班长通知班委下午3点开会

班长就是班主任的代理

代理模式的目的是: 隐藏真实访问对象,同时可以处理别的事情

定义

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

也就是说,代理是一个中介, 它连接客户端和目标对象,同时可以附加对种用途

模式结构

Subject: 定义了RealSubject和Proxy共用的接口

Proxy: 保存一个RealSubject的引用, 使得代理可以访问实体

RealSubject: 定义了Proxy代理的真实实体

模式实现

场景: 小明通过小花送小丽玫瑰花

场景分析:

1.小明和小花有共同的行为,送花
2.小花是小明的代理

下载代码, 解压后的目录如下:

使用场景

远程代理:可以隐藏一个对象存在于不同地址空间的事实

虚拟代理:允许内存开销较大的对象在需要的时候创建

安全代理:用来控制对真实对象的访问权限。

智能代理:当调用真实对象时,代理处理另外一些事情

转载于:https://www.cnblogs.com/liuconglin/p/6403763.html

大话设计模式读书笔记--4.代理模式相关推荐

  1. 大话设计模式读书笔记之原型模式

    由于大话这本书是以C#语言为基础写就的,本设计模式的例子中使用了一些c#中的API,因此就不再引用此书中的例子了,参考了一篇博客园中的大神写就的浅显易懂的JAVA版原型模式,在此奉上链接,以供大家学习 ...

  2. 大话设计模式读书笔记--6.原型模式

    简单的复制粘贴极有可能造成重复代码的灾难, 但是java中提供了克隆的功能, 如果一个对象创建过程复杂,又要频繁使用, 在初始化信息不发生变化的情况下,应当采取克隆而不是new一个对象 定义 原型模式 ...

  3. 大话设计模式读书笔记10----外观模式(Facade)

    外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更容易使用. 1.在设计初级阶段,应该要有意识的将不同的两个层分离. 2.层与层之间建 ...

  4. 大话设计模式读书笔记之桥接模式

    1.定义: 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 需要理解,什么叫抽象与它的实现分离,并不是说,让抽象类与其派生类分离,因为这没任何意义.实现指的是抽象类和它的派生类用来实现自己的对 ...

  5. 大话设计模式读书笔记之状态模式

    1.定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类.主要解决的问题是当控制一个对象状态转换的条件表达式过于复杂时把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复 ...

  6. 大话设计模式读书笔记

    主题 概要 设计模式 大话设计模式读书笔记 编辑 时间 新建 20170423 序号 参考资料 1 大话设计模式 重新看了一遍设计模式,除了一些已经特别熟悉的模式,都自己敲了一遍代码,有些豁然开朗的感 ...

  7. 设计模式读书笔记-----工厂方法模式

    一.问题 在前一章<设计模式读书笔记-----简单工厂模式>中通过披萨的实例介绍了简单工厂模式.在披萨实例中,如果我想根据地域的不同生产出不同口味的披萨,如纽约口味披萨,芝加哥口味披萨.如 ...

  8. JavaScript设计模式与开发实践---读书笔记(6) 代理模式

    代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问. 代理模式的关键是,当客户不方便直接访问一个对象或者不满足需要的时候,提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对象 ...

  9. 设计模式学习笔记之-代理模式

    2019独角兽企业重金招聘Python工程师标准>>>       代理模式中,客户不会直接调用目标对象而是通过一个代码对象,客户调用代理对象代理对象去调用目标对象,起到对象与对象间 ...

最新文章

  1. 微信小程序开发框架从入门到放弃
  2. 危机边缘第一季/全集Fringe迅雷下载
  3. [BZOJ2707]走迷宫
  4. Day 26: TogetherJS —— 让我们一起来编程!
  5. 为修复一个代码执行安全漏洞,TensorFlow决定不再支持YAML
  6. 用Xamarin 实现园友的 :Android浮动小球与开机自启动
  7. 有助于建立使用者对套件的信任 GitHub释出管理服务
  8. java读取文件指定位置_Java读取指定路径下的文件列表
  9. 后端用python还是php_【后端开发】2019学python还是php
  10. 【POJ - 3211】Washing Clothes (dp,0-1背包中点问题)
  11. XAF-BI.Dashboard模块概述 web/win
  12. Magento教程 11:Inline Translation前台改文
  13. 大话数据结构第四章栈的基本概念与出栈入栈操作
  14. 首次c#蓝牙开发踩坑记录
  15. Codeup_575A_剩下的树
  16. java ajax sendrequest()请求_AJAX – 向服务器发送请求 | 菜鸟教程
  17. 【口诀】巧记泰勒公式
  18. RQ940服务器显示器不亮,稳定可靠 联想ThinkServer RQ940服务器
  19. Struck跟踪算法介绍及代码解读(二)
  20. 蓝鲸智云-腾讯给广大运维工作者的福利

热门文章

  1. [IoC容器Unity]第四回:使用范例
  2. 单例模式Java实现
  3. Vim对中文编码的支持[转]
  4. jquery后学什么_我在训练营两年后学到了什么
  5. 计算机本科学位有用吗_我应该回到学校获得计算机科学学位吗?
  6. docker mysql忘记密码_docker基于mysql镜像构建mysql容器忘记密码解决办法
  7. java out of range_关于Parameter index out of range求解决办法
  8. 把.sql文件上传到服务器上
  9. java培训:什么是抽象类?怎么定义?
  10. 如何使用OWASP Dependency Check的命令行(CLI)模式进行依赖库安全漏洞扫描