先写一个策略模式的经典应用:
一个公司有很多员工,计算所有员工的平均年龄和平均工资。
我们先写一个员工类,
public class Employee {
public Employee(Sex sex, int salary){
this.sex = sex;
this.salary = salary;
}
private Sex sex;
private int salary;
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public Sex getSex() {
return sex;
}
public void setSex(Sex sex) {
this.sex = sex;
}
}
enum Sex{
MALE,
FEMALE
}
再来写一个calculator接口和两个实现类:
public interface ICalculator {
public double calAverageSalary(List<Employee> employees);
}
class MaleEmployeeCalculator implements ICalculator{
@Override
public dou