第七章 为别人做嫁衣—代理模式
仅仅是个人学习笔记,不具备参考价值
在说一下代理模式的应用。
(1)远程代理(Remote Proxy) -可以隐藏一个对象存在于不同地址空间的事实。也使得客户端可以访问在远程机器上的对象,远程机器可能具有更好的计算性能与处理速度,可以快速响应并处理客户端请求。
(2)虚拟代理(Virtual Proxy) – 允许内存开销较大的对象在需要的时候创建。只有我们真正需要这个对象的时候才创建。
(3)写入时复制代理(Copy-On-Write Proxy) – 用来控制对象的复制,方法是延迟对象的复制,直到客户真的需要为止。是虚拟代理的一个变体。
(4)保护代理(Protection (Access)Proxy) – 为不同的客户提供不同级别的目标对象访问权限
(5)缓存代理(Cache Proxy) – 为开销大的运算结果提供暂时存储,它允许多个客户共享结果,以减少计算或网络延迟。
(6)防火墙代理(Firewall Proxy) – 控制网络资源的访问,保护主题免于恶意客户的侵害。
(7)同步代理(SynchronizationProxy) – 在多线程的情况下为主题提供安全的访问。
(8)智能引用代理(Smart ReferenceProxy) - 当一个对象被引用时,提供一些额外的操作,比如将对此对象调用的次数记录下来等。
(9)复杂隐藏代理(Complexity HidingProxy) – 用来隐藏一个类的复杂集合的复杂度,并进行访问控制。有时候也称为外观代理(Façade Proxy),这不难理解。复杂隐藏代理和外观模式是不一样的,因为代理控制访问,而外观模式是不一样的,因为代理控制访问,而外观模式只提供另一组接口。
PS:这里只理解了包含代理、同步代理、智能应用代理,其它的工作都没有接触过,不太理解。
PS:看网上查看代理模式的时候,有人说和装饰模式有点类似。我个人的理解是根本八竿子打不着的模式。
代理模式的侧重点是控制被代理对象的访问。装饰者模式侧重点是可以按照客户端需要有选择地、按顺序的使用装饰功能包装对象,是给对象动态的添加功能。
第七章 为别人做嫁衣—代理模式相关推荐
- 《大话设计模式》之--第7章 为别人做嫁衣----代理模式
第7章 为别人做嫁衣----代理模式 7.1为别人做嫁衣 "小菜,今天见这个叫娇娇的美女见得如何呀?"大鸟一回家来就问小菜. "唉,别提了,人家是有男朋友的." ...
- 第7章 为别人做嫁衣----代理模式 大话设计模式
第7章 为别人做嫁衣----代理模式 7.1为别人做嫁衣 "小菜,今天见这个叫娇娇的美女见得如何呀?"大鸟一回家来就问小菜. "唉,别提了,人家是有男朋友的." ...
- java设计模式之为别人做嫁衣----代理模式
2019独角兽企业重金招聘Python工程师标准>>> 7.1为别人做嫁衣 "小菜,今天见这个叫娇娇的美女见得如何呀?"大鸟一回家来就问小菜. "唉,别 ...
- 为别人做嫁衣 代理模式
7.1 为别人做嫁衣! 7.2 没有代理的代码 namespace 代理模式 {class Program{static void Main(string[] args){SchoolGirl jia ...
- 设计模式(三) | 为别人做嫁衣---代理模式
代理模式 代理模式:为其他对象提供一种代理,以控制对这个对象的访问. 模式动机: 在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为"代理"的第三者来实现 ...
- 为别人做嫁衣——代理模式
代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问. 代理模式(Proxy)结构图 Subject类,定义了RealSuject和Proxy的共用的接口,这样就在任何使用RealSu ...
- 【设计模式】为别人做嫁衣 --- 代理模式
一,概述 定义:代理模式(Proxy)为另一个对象提供一个替身或占位符以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象. 作用:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下 ...
- 为别人做嫁衣---代理模式
引例 : 追求者(C),被追求者(B) ,代理者(A) 故事概要: A和B是好朋友, A喜欢B ,但A以C的名义去送给B礼物 1.没有代理 追求者类class Pursuit{SchoolGirl m ...
- 为别人做嫁衣 --- 代理模式
一,概述 定义:代理模式(Proxy)为另一个对象提供一个替身或占位符以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象. 作用:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下 ...
最新文章
- 你中招了吗?混不好大学的人,都有这4种表现
- 重磅直播|中科慧眼崔峰博士详解深度相机原理及其应用
- 安卓java修改按钮大小_android弹出activity设置大小的方法
- javascript系统时间
- 系统测试分类和测试常用方法
- 使用tkinter爬取二手房交易网站信息
- SQLite Developer破解 cmd 运行 reg delete HKEY_CURRENT_USER\SharpPlus\SqliteDev /v StartDate /f
- 鲁班H5页面生成工具源码
- Git 删除提交\commit的log记录、修改历史提交消息、删除历史提交、修改所有提交的邮箱地址、从所有提交中删除一个文件
- win10上运行ROS时报:qt.qpa.plugin:Cound not find the Qt platform plugin “windows“
- win10声音输出设备选择声卡步骤
- 【算法】算法之会议安排问题(C++源码)
- 使用docker部署java服务
- Excel分列小技巧
- 2021消防设施操作员考试实操口述题及答案解析
- LeetCode 21-30 题
- 计算机大数据的前景方向_大数据十大发展方向!
- C语言之对char*与char[]的理解
- 游戏音效设计师的限制
- MBA-day13 逻辑学 模态推理(可能与必然的推理)
热门文章
- :“Parameter ‘@i‘ specified but none of the passed arguments have a
- raptor工具使用方法、两个数求和
- mes系统故障_MES系统现在存在哪些问题
- [技术] [插件精选] 炫酷粒子特效(下)
- 7-4 惊群、性能优化大局观
- 数据库正在复制无法分离解决办法
- python--LDA线性判别分析模型
- 百奥赛图与LiberoThera共同开发全人GPCR抗体药物取得里程碑式进展
- 微软html帮助文档制作,MicrosoftHTMLHelpWorkshop(CHM文件生成工具)
- shape:形状定义图形