package com.cheng.zenofdesignpatterns.patterns.visitor.multivisitor;
/**
* 汇总表,该访问者起汇总作用,把容器中的数据一个一个便利,然后汇总
*/
public class TotalVisitor implements ITotalVisitor {
// 部门经理的工资系数是5
private final static int MANAGER_COEFFICIENT = 5;
// 员工的工资系数是2
private final static int COMMONEMPLOYEE_COEFFICIENT = 2;
// 普通员工的工资总和
private int commonTotalSalary = 0;
// 部门经理的工资总和
private int managerTotalSalary =0;
public void totalSalary() {
System.out.println("本公司的月工资总额是" + (this.commonTotalSalary + this.managerTotalSalary));
}
// 访问普通员工,计算工资总额
public void visit(MVCommonEmployee commonEmployee) {
this.commonTotalSalary = this.commonTotalSalary + commonEmployee.getSalary()*COMMONEMPLOYEE_COEFFICIENT;
}
// 访问部门经理,计算工资总额
public void visit(MVManager manager) {
this.managerTotalSalary = this.managerTotalSalary + manager.getSalary() *MANAGER_COEFFICIENT ;
}
}