1700472647
}
1700472648
1700472649
//访问部门经理,计算工资总额
1700472650
1700472651
public void visit(Manager manager){
1700472652
1700472653
this.managerTotalSalary=this.managerTotalSalary+manager.getSalary()
1700472654
1700472655
*MANAGER_COEFFICIENT;
1700472656
1700472657
}
1700472658
1700472659
}
1700472660
1700472661
最后看我们的场景类如何计算出工资总额,如代码清单25-24所示。
1700472662
1700472663
代码清单25-24 场景类
1700472664
1700472665
public class Client{
1700472666
1700472667
public static void main(String[]args){
1700472668
1700472669
//展示报表访问者
1700472670
1700472671
IShowVisitor showVisitor=new ShowVisitor();
1700472672
1700472673
//汇总报表的访问者
1700472674
1700472675
ITotalVisitor totalVisitor=new TotalVisitor();
1700472676
1700472677
for(Employee emp:mockEmployee()){
1700472678
1700472679
emp.accept(showVisitor);//接受展示报表访问者
1700472680
1700472681
emp.accept(totalVisitor);//接受汇总表访问者
1700472682
1700472683
}
1700472684
1700472685
//展示报表
1700472686
1700472687
showVisitor.report();
1700472688
1700472689
//汇总报表
1700472690
1700472691
totalVisitor.totalSalary();
1700472692
1700472693
}
1700472694
1700472695
}
1700472696
[
上一页 ]
[ :1.700472647e+09 ]
[
下一页 ]