加入收藏  |  设为首页
网站首页 公司简介 服务承诺 新闻动态 案例展示 装饰知识 人才招聘 联系我们
Get Adobe Flash player
   
案例风格 : PRODUCT LIST
欧式古典风格
现代简约风格
地中海风格
田园风格
自然风格
站内搜索 : SEARCH
装饰知识 : KNOWLEDGE
菊花和枸杞泡水喝有什…
依托呼叫中心客服系统…
2021归国人员想落户北…
电磁加热水是不结垢吗…
不断满足消费者个性化…
海南在线 家居装饰频道…
联系金润 : CONTACT
客服电话:0731-89917416
技术咨询:18008837114
传 真:0731-89918422
电子邮箱:mmheng@foxmail.com
地 址:荷塘区东城龙庭
二栋508室)
当前位置 首页 > 新闻动态

Java设计模式(13)----------代理模式

作者:金润中国 来源:未知 日期:2018-5-15 8:15:04 人气:
导读:代理模式中,在客户端与对象之间增加了一个代理层。客户端在进行访问时候,不是直接访问对象,而是访问代理。代理模式是一种结构型的设计模式。通过代理模式,可…

  代理模式中,在客户端与对象之间增加了一个代理层。客户端在进行访问时候,不是直接访问对象,而是访问代理。代理模式是一种结构型的设计模式。通过代理模式,可以解决直接访问对象带来的一些问题,并且可以进行访问控制。

  代理模式的实现中,代理类中依赖实体类,但两者共同实现相同的接口。代理类中对应接口中,会调用实体类的对应接口。听上去与装饰器的实现一样,是的,两者的实现基本上是相同的,只是使用意义上的侧重点不同。两者的区别,会在文末的总结中进行分析。

  代理模式的应用场景比较广泛,跟“代理”两个字沾边的,一般都会涉及代理模式。比如火车票代售站,对于乘客来说,他不需要去真正的火车站,而通过代售点,就可以实现买票取票的功能。比如VPN,由于众所周知的原因,我们不能访问youtube,那么我们可以设置一个VPN,通过VPN进行访问。再比如说windows的快捷方式,也是一种代理。还有就是Spring的AOP。

  代理模式从类型上来说分为两种,静态代理和动态代理。所谓静态代理,就是在编译期间就确定的代理关系,一般是一对一的。而动态代理,是一对多的代理关系,是在运行时态才能确定的代理关系。动态代理的原理比较复杂,本篇文章只简单介绍动态代理的使用,在下一篇文章中,会从原理和代码的层面,对动态代理做专门的解读。

  以购买火车票为例。乘客(客户端)在购买火车票的时候,可以在代售点(代理类)进行购买(功能),而不需要花费很长的时间跑去火车站(真实类)进行购买(功能)。

  以汽车(抽象)行驶为例子,我们要统计多种车型(原始实现类)通过某段距离的用时。在汽车行驶前,需要进行开始计时的操作(功能扩展)。汽车行驶后,要进行结束计时的操作(功能扩展)。

  装饰器模式强调对于方法的加强,扩展的深度。打个比方,张无忌学习大挪移。装饰器模式,则增加其深度,从第3层境地学习到第4层境地,注重功能的加强。代理模式则是让其在学习大挪移之前,先学习一下九阳神功,两种武功能够有所联系。从看来,都是武功的增强,但是一个是深度,一个是广度。

  

首页 | 案例展示 | 装饰知识 | 新闻资讯 | 关于金润 | 联系金润
Copyright 2010 - 2011 中国金润装饰有限公司 All rights reserved. BY FXT 湘ICP备07035491号