读《大话设计模式》有感之代理模式
2013-12-06 15:45
218 查看
似乎是一个月前,看了这么一则新闻:某一出国代理组织,由于未将学生的雅思托福成绩上交给所报院校,使得该学生未入读理想院校。这件事情很有趣,记者同志大概也是很感兴趣的,就去问了该组织,为什么未将该学生的雅思托福成绩上交呢?当然,答案也是相当得令人意外。说是保管学生资料钥匙的负责人最近要生孩子,所以可能忘了将学生材料统一上报。至此,大家估计就只想“呵呵”了。
在现实中代理,会出漏子,因为人员操作,组织庞大在所难免。其实在java编程的时候,也有一个很有趣的设计模式:代理模式。
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
代理模式的结构图
图 1
读完定义,现在来看看代码这块是怎么实现的。
IAbroad接口(Subject)
图 2
Person类(RealSubject)
图 3
Proxy类(Proxy)
图 4
University类(目标对象)
图 5
客户端代码(Client)
图 6
(图 1)是定义了想出国的学生(图 2)和代理组织(图 3)的共用接口:申请出国接口;这样就只要知道要出去的国家名,那么客户端根本无需知道被代理者的信息,就可以完成申请了。
那么代理模式一般是用在什么场合呢?
第一:远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样隐藏一个对象存在于不同地址空间的事实。
第二:虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真是对象。
第三:安全代理,用来控制真实对象访问的权限。一般用于对象应该有不同的访问权限的时候。
第四:只能指引,是指当调用真实的对象时,代理处理另外一些事。
其实,代理就是真是对象的代表。
部分语句摘自《大话设计模式》,谢谢大神~
在现实中代理,会出漏子,因为人员操作,组织庞大在所难免。其实在java编程的时候,也有一个很有趣的设计模式:代理模式。
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
代理模式的结构图
图 1
读完定义,现在来看看代码这块是怎么实现的。
IAbroad接口(Subject)
图 2
Person类(RealSubject)
图 3
Proxy类(Proxy)
图 4
University类(目标对象)
图 5
客户端代码(Client)
图 6
(图 1)是定义了想出国的学生(图 2)和代理组织(图 3)的共用接口:申请出国接口;这样就只要知道要出去的国家名,那么客户端根本无需知道被代理者的信息,就可以完成申请了。
那么代理模式一般是用在什么场合呢?
第一:远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样隐藏一个对象存在于不同地址空间的事实。
第二:虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真是对象。
第三:安全代理,用来控制真实对象访问的权限。一般用于对象应该有不同的访问权限的时候。
第四:只能指引,是指当调用真实的对象时,代理处理另外一些事。
其实,代理就是真是对象的代表。
部分语句摘自《大话设计模式》,谢谢大神~
相关文章推荐
- 读《大话设计模式》有感之装饰模式
- 大话设计模式(golang) 四、代理模式
- 大话设计模式--代理模式
- 大话设计模式之代理模式
- 大话设计模式 代理模式
- 大话设计模式4 代理模式 的java代码实现
- 读《大话设计模式》有感之策略模式
- <四>读<<大话设计模式>>之代理模式
- 《大话设计模式》读书笔记四——代理模式
- 设计模式原则总结--读《大话设计模式》有感
- 大话设计模式(三)动态代理设计模式
- 大话设计模式—代理模式
- 《大话设计模式》ruby版代码:代理模式
- 大话设计模式-----(二)装饰模式、代理模式
- 大话设计模式C++版——代理模式
- 大话设计模式(三)动态代理设计模式
- 《大话设计模式》关于装饰者模式和代理模式个人笔记
- 大话设计模式之代理模式
- 大话设计模式-代理模式
- 《大话设计模式》——代理模式