From 3a86098be5cf274ce7bba8db4fedd0328495ae9c Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Tue, 5 Jun 2018 21:33:34 +0800 Subject: [PATCH] auto commit --- notes/设计模式.md | 96 +++++++++++++++++- pics/a6c20f60-5eba-427d-9413-352ada4b40fe.png | Bin 0 -> 16384 bytes 2 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 pics/a6c20f60-5eba-427d-9413-352ada4b40fe.png diff --git a/notes/设计模式.md b/notes/设计模式.md index 278d6c9a..c863894d 100644 --- a/notes/设计模式.md +++ b/notes/设计模式.md @@ -2885,9 +2885,101 @@ Java 利用缓存来加速大量小对象的访问时间。 ### 意图 -提供一个占位符来控制对象的访问。 +控制对其它对象的方法。 -代理可以是一些轻量级的对象,它控制着对重量级对象的访问,只有在真正实例化这些重量级对象时才会去实例化它。 + +### 类图 + +代理有以下四类: + +- 远程代理(Remote Proxy):控制对远程对象(不同地址空间)的访问,它负责将请求及其参数进行编码,并向不同地址空间中的对象发送已经编码的请求。 +- 虚拟代理(Virtual Proxy):根据需要创建开销很大的对象,它可以缓存实体的附加信息,以便延迟对它的访问,例如在网站加载一个很大图片时,不能马上完成,可以用虚拟代理缓存图片的大小信息,然后生成一张临时图片代替原始图片。 +- 保护代理(Protection Proxy):按权限控制对象的访问,它负责检查调用者是否具有实现一个请求所必须的访问权限。 +- 智能代理(Smart Reference:取代了简单的指针,它在访问对象时执行一些附加操作:记录对象的引用次数,比如智能智能;当第一次引用一个持久化对象时,将它装入内存;在访问一个实际对象前,检查是否已经锁定了它,以确保其它对象不能改变它。 + +
IOL9_68h0eUH>STZ@_O{DCR<>89Zu=QoQDU8
z<2|mznWlB%S4R$FlTN5+Wuv{u-9l(PlPNw}=%B0{uAMZ%WTbA; ^&?#}#cG}!khZMjqS$m6DZ4>5GnArIfMJNk8Bo86T1NtR#
zXfW(Z7=s*}Ci4MQW`!ZH(6TS(oA;n?P*IYS4@$wTzIp=DF^0ew%`I18 8y2bG*r3w>O(mv^w-f#S#e?Y)-0waxf=KoP3Wu
zj18H?xD#}wBIkc)GwG}yqQMueFYiH!PC7Fo?_0P2-W>$!pQdngQJjGk!g_L9wumcN
z_yol|-_{grz;K;_FF_Hnn)e!z$fW!>(24|@Df#o_^?A$#jk-KtS%E~sfHW;6YbCkB
z`yD@jI?*uwd$kjE4i|+^ppUn$pv$u0e7abx}+vGHWFQaF+
zE9s4Cqr!Z0cgUYCW`49%7d4O*n4r;lMgarj50|0nx&HFjSP}1HAfS&PkD9a4KDRf&
zY&X@tMzpl|r