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

Java筹划情势之Visitor情势[Java编程]

赞助商链接



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

Visitor定义

作用于某个对象群中各个对象的操作.它可以使你在不改变这些对象本身的情形下,定义作用于这些对象的新操作.

在Java中,Visitor情势实际上是别离了collection构造中的元素和对这些元素举行操作的行为.

为什么利用Visitor?

Java的Collection(包含Vector和Hashtable)是我们最常常利用的技术,但是Collection好象是个黑色大染缸,本来有各种鲜明范例特点的对象一旦放入后,再取出时,这些范例就消逝了.那么我们势必要用If来判断,如:

Iterator iterator = collection.iterator()
while (iterator.hasNext()) {
   Object o = iterator.next();
   if (o instanceof Collection)
      messyPrintCollection((Collection)o);
   else if (o instanceof String)
      System.out.println("'"+o.toString()+"'");
   else if (o instanceof Float)
      System.out.println(o.toString()+"f");
   else
      System.out.println(o.toString());
}

在上例中,我们利用了 instanceof来判断 o的范例.

很明显,这样做的缺陷代码If else if 很烦琐.我们便可以利用Visitor情势办理它.

若何利用Visitor?/

针对上例,我们计划一个接口visitor拜候者:

public interface Visitor
{
   public void visitCollection(Collection collection);
   public void visitString(String string);
   public void visitFloat(Float float);
}

在这个接口中,将我们认为Collection有大概的类的范例放入此中.

有了拜候者,我们需求被拜候者,被拜候者就是我们Collection的每个元素Element,我们要为这些Element定义一个可以承受拜候的接口(拜候和被拜候是互动的,只有拜候者,被拜候者假如表示不欢送,拜候者就不能拜候).

我们定义这个接口叫Visitable,用来定义一个Accept操作,也就是说让Collection每个元素具有可拜候性.

public interface Visitable
{
   public void accept(Visitor visitor);
}

好了,有了两个接口,我们就要定义他们的具体实现(Concrete class):

public class ConcreteElement implements Visitable
{
   private String value;
   public ConcreteElement(String string) {
      value = string;
   }
   //定义accept的具体内容 这里是很简单的一句调用
   public void accept(Visitor visitor) {
      visitor.visitString(this);
   }
}


  以上是“Java筹划情势之Visitor情势[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

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

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