1700480212
return(new Random()).nextInt(300);
1700480213
1700480214
}
1700480215
1700480216
}
1700480217
1700480218
一个计算员工薪酬的所有子元素都已经具备了,剩下的就是编写组合逻辑类,总工资的计算如代码清单33-26所示。
1700480219
1700480220
代码清单33-26 总工资计算
1700480221
1700480222
public class SalaryProvider{
1700480223
1700480224
//基本工资
1700480225
1700480226
private BasicSalary basicSalary=new BasicSalary();
1700480227
1700480228
//奖金
1700480229
1700480230
private Bonus bonus=new Bonus();
1700480231
1700480232
//绩效
1700480233
1700480234
private Performance perf=new Performance();
1700480235
1700480236
//税收
1700480237
1700480238
private Tax tax=new Tax();
1700480239
1700480240
//获得用户的总收入
1700480241
1700480242
public int totalSalary(){
1700480243
1700480244
return basicSalary.getBasicSalary()+bonus.getBonus()+
1700480245
1700480246
perf.getPerformanceValue()-tax.getTax();
1700480247
1700480248
}
1700480249
1700480250
}
1700480251
1700480252
这里只是对前面的元素值做了一个加减法计算,这是对实际HR系统的简化处理,如果把这个类暴露给外系统,那么被修改的风险是非常大的,因为它的方法totalSalary是一个具体的业务逻辑。我们采用门面模式的目的是要求门面是无逻辑的,与业务无关,只是一个子系统的访问入口。门面模式只是一个技术层次上的实现,全部业务还是在子系统内实现。我们来看HR门面,如代码清单33-27所示。
1700480253
1700480254
代码清单33-27 HR门面
1700480255
1700480256
public class HRFacade{
1700480257
1700480258
//总工资情况
1700480259
1700480260
private SalaryProvider salaryProvider=new SalaryProvider();
1700480261
[
上一页 ]
[ :1.700480212e+09 ]
[
下一页 ]