访问者设计模式

来源:互联网 发布:win7桌面数字时钟软件 编辑:程序博客网 时间:2024/05/23 17:56

       当数据结构固定时,要为数据结构增加新的操作方法,一般会考虑用到访问者设计模式。对某一对象增加新的方法,新的操作用accetp来接收,具体的实现在visitor中实现。双重选择:accept,visit。

       看了一个例子,你就会明白:

       public interface IFood {
               void accept(IVisitor v);
       }

       public class GuangdongFoodImp implements IFood{

@Override

public void accept(IVisitor v) {

v.visit(this);

}

       }

       public class HubeiFoodImp implements IFood{

@Override

public void accept(IVisitor v) {

v.visit(this);

       }

      public class HubeiVisitorImp implements IVisitor{

@Override

public void visit(GuangdongFoodImp guangdong) {

System.out.println("新增加广东的做法");

}

@Override

public void visit(HubeiFoodImp hubei) {

System.out.println("新增加湖北的做法");

}

       }

      public interface IVisitor {

     void visit(HubeiFoodImp hubei);

     void visit(GuangdongFoodImp guangdong);

}

public class Clientt {

public static void main(String args[]){

HubeiVisitorImp v =new HubeiVisitorImp();

IFood food=new HubeiFoodImp();

food.accept(v);

}

}

原创粉丝点击