Visitor 访问者模式

来源:互联网 发布:淘宝hd平板官网下载 编辑:程序博客网 时间:2024/06/05 17:02
package com.lonton.designpatterns;import java.util.ArrayList;interface Visitor{public void visit(City city);public void visit(Museum museum);public void viist(Park park);}class FirstTimeVisitor implements Visitor{@Overridepublic void visit(City city){// TODO Auto-generated method stubSystem.out.println("I'm visiting the city!");}@Overridepublic void visit(Museum museum){// TODO Auto-generated method stubSystem.out.println("I'm visiting the Museum!");}@Overridepublic void viist(Park park){// TODO Auto-generated method stubSystem.out.println("I'm visiting the Park!");}}interface Element{public void accept(Visitor visitor);}class City implements Element{private ArrayList<Element> elements = new ArrayList<Element>();public City(){elements.add(new Museum());elements.add(new Park());}@Overridepublic void accept(Visitor visitor){// TODO Auto-generated method stubSystem.out.println("City is accepting visitor");visitor.visit(this);for (Element element : elements){element.accept(visitor);}}}class Museum implements Element{@Overridepublic void accept(Visitor visitor){// TODO Auto-generated method stubSystem.out.println("Museum is accepting visitor");visitor.visit(this);}}class Park implements Element{@Overridepublic void accept(Visitor visitor){// TODO Auto-generated method stubSystem.out.println("Park is accepting visitor");visitor.viist(this);}}public class VisitorTest{public static void main(String[] args){FirstTimeVisitor visitor = new FirstTimeVisitor();City city = new City();city.accept(visitor);}}

0 0
原创粉丝点击