1700472234
}
1700472235
1700472236
public class ConcreteElement2 extends Element{
1700472237
1700472238
//完善业务逻辑
1700472239
1700472240
public void doSomething(){
1700472241
1700472242
//业务处理
1700472243
1700472244
}
1700472245
1700472246
//允许那个访问者访问
1700472247
1700472248
public void accept(IVisitor visitor){
1700472249
1700472250
visitor.visit(this);
1700472251
1700472252
}
1700472253
1700472254
}
1700472255
1700472256
它定义了两个具体元素,我们再来看抽象访问者,一般是有几个具体元素就有几个访问方法,如代码清单25-13所示。
1700472257
1700472258
代码清单25-13 抽象访问者
1700472259
1700472260
public interface IVisitor{
1700472261
1700472262
//可以访问哪些对象
1700472263
1700472264
public void visit(ConcreteElement1 el1);
1700472265
1700472266
public void visit(ConcreteElement2 el2);
1700472267
1700472268
}
1700472269
1700472270
具体访问者如代码清单25-14所示。
1700472271
1700472272
代码清单25-14 具体访问者
1700472273
1700472274
public class Visitor implements IVisitor{
1700472275
1700472276
//访问el1元素
1700472277
1700472278
public void visit(ConcreteElement1 el1){
1700472279
1700472280
el1.doSomething();
1700472281
1700472282
}
1700472283
[
上一页 ]
[ :1.700472234e+09 ]
[
下一页 ]