首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

访问者方式(Visitor)

2014-05-14 
访问者模式(Visitor)/** * 抽象访问者角色 * @author wdt * */interface IVisitor {public void visit(Ele

访问者模式(Visitor)
/** * 抽象访问者角色 * @author wdt * */interface IVisitor { public void visit(Element1 el1); public void visit(ConcreteElement2 el2); } /** * * @author wdt * 具体访问者角色 * 实现抽象访问者的方法 */class Visitor implements IVisitor { /** * el1为被访问的对象 */ public void visit(ConcreteElement1 el1) { ---这里还可以做点什么? el1.doSomething(); } public void visit(ConcreteElement2 el2) { el2.doSomething(); } }

?

/** * 抽象访问者角色 * @author wdt * */interface IVisitor {      public void visit(ConcreteElement1 el1);      public void visit(ConcreteElement2 el2);  } /** * 具体元素对象 实现抽象元素对象的方法 * @author wdt * */class ConcreteElement1 extends Element {      public void doSomething(){          System.out.println("这是元素1");      }            public void accept(IVisitor visitor) {          visitor.visit(this);      }  }    class ConcreteElement2 extends Element {      public void doSomething(){          System.out.println("这是元素2");      }            public void accept(IVisitor visitor) {          visitor.visit(this);      }  }  

?

? ??

public class Client {      public static void main(String[] args){          List<Element> list = new ArrayList<Element>();          list.add(new ConcreteElement1());        list.add(new ConcreteElement2());        for(Element e: list){              e.accept(new Visitor());  //接见访问者        }      }  }  

?

?

使用场景:

? ? ?1、一些对象关系比较弱的行为,可以使用访问者模式,将这些弱关系行为放在访问者中。

? ? ?

热点排行