首页 / 设计模式 / 设计模式----代理模式
设计模式----代理模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了设计模式----代理模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1432字,纯文字阅读大概需要3分钟。
内容图文
![设计模式----代理模式](/upload/InfoBanner/zyjiaocheng/1323/ea8fbd2a64a34ba89b93a6db42f4bce5.jpg)
话说代理模式,其实就是一个类想要完成的操作,通过它的好朋友proxy替它完成。那代理模式又分为静态代理和动态代理。
那今天就先来说一说静态代理模式。在大话设计模式中,看到大鸟是这样写的:
一个叫戴笠的男生,想追一个叫娇娇的女生,于是他就想到了一个办法去追求娇娇。就是每次都将自己想要送给娇娇的东西说成他的好朋友卓贾易送的,久而
久之娇娇也就看出来了,就和戴笠在一起了。
然后看完我的感受就是:
interface xxxProxy
classPursuit(卓贾易)classProxy(戴笠)----→ ←----- classTheGirl(娇娇)
实际的设计模型就是:
设计一个 代理接口:
然后 追求者类和代理者类都实现 代理接口
然而并不是两个类一模一样,代理者类中实现的 代理接口的方法中 调用的是 追求者实现的代理接口的方法
代理模式: 为其他对象提供一种代理以控制对这个对象的访问。
以struts2中的ActionProxy为例分析:
代理接口:
public
interface Proxy{
String execute();
Action getAction();
ActionInvocation getActionInvocation();
}
真实类:
public
class
Action
implements
ActionProxy{
public String execute(){}
}
代理类:
public
class
ActionProxy
implements
Proxy{
private Action action;
public String execute(){
return action.execute();
}
}
那这样,一个静态的代理模式就基本完成了。但是实际的Struts2中的ActionProxy 用的是DynamicProxy模式,今天呢就暂时先讲一讲静态代理完成Struts2中的ActionProxy吧。
代理模式一般应用场景:
第一:远程代理,也就是为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实。
例如,当我在一个web应用中,引用struts框架,那我就需要导入一些jar包,然后会在项目中生成一些Library,其实它们就是代理。
第二:虚拟代理,是根据需求创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象。
例如,浏览器就是运用虚拟代理来优化下载的。
第三:安全代理,用来控制真实对象访问时的权限。
第四:智能指引,是指当调用真实的对象时,代理处理另外一些事。
那今后遇到这些场景,就可以运用代理模式,届时我们只需要分析出那个是代理者,那个是追求者即可完成充代理模式了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/wild_elegance_k/article/details/47373719
内容总结
以上是互联网集市为您收集整理的设计模式----代理模式全部内容,希望文章能够帮你解决设计模式----代理模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。