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
1700480262
//考勤情况
1700480263
1700480264
private Attendance attendance=new Attendance();
1700480265
1700480266
//查询一个人的总收入
1700480267
1700480268
public int querySalary(String name,Date date){
1700480269
1700480270
return salaryProvider.totalSalary();
1700480271
1700480272
}
1700480273
1700480274
//查询一个员工一个月工作了多少天
1700480275
1700480276
public int queryWorkDays(String name){
1700480277
1700480278
return attendance.getWorkDays();
[
上一页 ]
[ :1.700480229e+09 ]
[
下一页 ]