打字猴:1.700480212e+09
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 ]  [ 下一页 ]