当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

深化浅出基于Java的代理筹划情势[Java编程]

赞助商链接



  本文“深化浅出基于Java的代理筹划情势[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

1、引子

我们去科技市场为自己的机械增添点奢侈的配件,很多DIYer都喜好去找代理商,因为在代理商那边拿到的东西不但质量有保证,并且价钱和售后服务上城市好很多.客户通过代理商得到了自己想要的东西,并且还享遭到了代理商额外的服务;而生产厂商通过代理商将自己的产品奉行出去,并且可以将一些贩卖服务的任务交给代理商来完成(当然代理商要和厂商来共同分担风险,分配利润),这样自己便可以花更多的心机在产品的计划和生产上了.

在美国,任何企业的产品要想拿到市场上去卖就必须经过代理商这一个环节,不然就是不法的.看来代理商在商业运作中起着很关键的作用. 不当心把话题扯远了,回过头来,那么在我们的面向对象的程序计划中,会不会有代理商这样的角色呢?来看这篇文章的人必定不会说:没有!

那么就随着这篇文章来看看代理情势的奥妙吧.

2、定义和分类

代理情势在计划情势中的定义就是:为其他对象供应一种代理以掌握对这个对象的拜候.说白了就是,在一些情形下客户不想大概不能直接引用一个对象,而代理对象可以在客户和目标对象之间起到中介作用,去掉客户不能看到的内容和服务大概增添客户需求的额外服务.

那么什么时刻要利用代理情势呢?在对已有的办法举行利用的时刻呈现需求对原有办法举行改良大概改正,这时刻有两种改良挑选:改正原有办法来适应目前的利用方法,大概利用一个“第三者”办法来调用原有的办法并且对办法产生的后果举行一定的掌握.第一种办法是明显违反了“对扩大开放、对改正关闭”(开闭原则),并且在本来办法中作改正大概使得本来类的功效变得模糊和多元化(就像目前企业多元化一样),而利用第二种方法可以将功效划分的越发清楚,有助于背面的保护.所以在一定程度上第二种方法是一个对比好的挑选!

当然,话又说回来了,假如是一个很小的系统,功效也不是很复杂,那么利用代理情势大概就显得臃肿,不如第一种方法来的快速.这就像一个三口之家,家务活全由家庭妇女大概一个保母来完成是对比公道的,根本不需求雇上好几个保母层层代理:)

按照《Java与情势》书中对代理情势的分类,代理情势分为8种,这里将几种常见的、重要的摆列以下:

1. 远程(Remote)代理:为一个位于差别的地址空间的对象供应一个局域代表对象.比方:你可以将一个在世界某个角落一台机械通过代理假象成你局域网中的一部份.

2. 虚拟(Virtual)代理:按照需求将一个资源损耗很大大概对比复杂的对象耽误的真正需求时才成立.比方:假如一个很大的图片,需求耗费很长时间才能显示出来,那么当这个图片包含在文档中时,利用编辑器或浏览器翻开这个文档,这个大图片大概就影响了文档的阅读,这时需求做个图片Proxy来替换真正的图片.

3. 保护(Protect or Access)代理:掌握对一个对象的拜候权限.比方:在论坛中,差别的身份登陆,拥有的权限是差别的,利用代理情势可以掌握权限(当然,利用别的方法也可以实现).

4. 智能引用(Smart Reference)代理:供应比对目标对象额外的服务.比方:记录拜候的流量(这是个再简单不过的例子),供应一些友情提醒等等.

代理情势是一种对比有效的情势,从几个类的“小构造”到宏大系统的“大构造”都可以看到它的影子.

3、构造

代理情势中的“代理商”要想实现代理任务,就必须和被代理的“厂商”利用共同的接口(你可以想象为产品).所以自但是然你会想到在java中利用一个抽象类大概接口(举荐)来实现这个共同的接口.于是代理情势就有三个角色构成了:

1.抽象主题角色:声明了真实主题和代理主题的共同接口.

2.代理主题角色:内部包含对真实主题的引用,并且供应和真实主题角色相同的接口.

3.真实主题角色:定义真实的对象.

利用类图来表示下三者间的关系以下:

当然,图上所示的是代理情势中的一个具体情形.而代理情势可以非常机动的利用其他方法来实现,这样就与图上所示有很大的辨别.

大概,目前你已经对代理情势已经有了一个宏观的熟习了,下面我们来看看怎么实际的利用代理情势.


  以上是“深化浅出基于Java的代理筹划情势[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 深化浅出Netfilter/iptables防火墙框架(底子篇)
  • 数据库计划范式深化浅出
  • 深化浅出基于Java的责任链情势
  • 深化浅出基于Java的制作筹划情势
  • 深化浅出谈垃圾的回收—Java堆的管理
  • <b>深化浅出Java筹划情势之迭代器情势</b>
  • 深化浅出基于Java的代理筹划情势
  • 深化浅出Java多线程(1)-办法join
  • 深化浅出Java多线程(2)-Swing中的EDT(事件分发线程)
  • 深化浅出基于Java的注释器筹划情势
  • 深化浅出Java堆的管理 - 垃圾回收
  • 深化浅出Java的访谒者情势
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .