1700472031
上面是普通员工的实现类,该类的accept方法很简单,这个类就把自身传递过去,也就是让访问者访问本身这个对象。再看Manager类,如代码清单25-9所示。
1700472032
1700472033
代码清单25-9 管理层员工
1700472034
1700472035
public class Manager extends Employee{
1700472036
1700472037
//这类人物的职责非常明确:业绩
1700472038
1700472039
private String performance;
1700472040
1700472041
public String getPerformance(){
1700472042
1700472043
return performance;
1700472044
1700472045
}
1700472046
1700472047
public void setPerformance(String performance){
1700472048
1700472049
this.performance=performance;
1700472050
1700472051
}
1700472052
1700472053
//部门经理允许访问者访问
1700472054
1700472055
@Override
1700472056
1700472057
public void accept(IVisitor visitor){
1700472058
1700472059
visitor.visit(this);
1700472060
1700472061
}
1700472062
1700472063
}
1700472064
1700472065
所有的业务定义都已经完成,我们来看看怎么模拟这个逻辑,如代码清单25-10所示。
1700472066
1700472067
代码清单25-10 场景类
1700472068
1700472069
public class Client{
1700472070
1700472071
public static void main(String[]args){
1700472072
1700472073
for(Employee emp:mockEmployee()){
1700472074
1700472075
emp.accept(new Visitor());
1700472076
1700472077
}
1700472078
1700472079
}
1700472080
[
上一页 ]
[ :1.700472031e+09 ]
[
下一页 ]