package com.eyugame.modle; /** * 访问者模式 * @author JYC506 * */ /*访问者*/ public class Visitor implements IVisitor{ @Override public void update(IPro o) { o.doSomeThing(); } public static void main(String[] args) { IPro pro1=new Pro1(); IPro pro2=new Pro2(); IVisitor visitor=new Visitor(); pro1.acept(visitor); pro2.acept(visitor); } } interface IVisitor{ void update(IPro o); } /*产品*/ interface IPro{ void acept(IVisitor visitor); void doSomeThing(); } /*产品1*/ class Pro1 implements IPro{ @Override public void acept(IVisitor visitor) { visitor.update(this); } @Override public void doSomeThing() { System.out.println("pro1 do something"); } } /*产品2*/ class Pro2 implements IPro{ @Override public void acept(IVisitor visitor) { visitor.update(this); } @Override public void doSomeThing() { System.out.println("pro2 do something"); } }
时间: 2024-10-16 01:25:19