打字猴:1.7004803e+09
1700480300 currentTimeMillis()));
1700480301
1700480302 System.out.println(“张三11月总收入为:”+salary);
1700480303
1700480304 //再查询出勤天数
1700480305
1700480306 System.out.println(”\n===外系统查询出勤天数===”);
1700480307
1700480308 int workDays=facade.queryWorkDays(“李四”);
1700480309
1700480310 System.out.println(“李四本月出勤:”+workDays);
1700480311
1700480312 }
1700480313
1700480314 }
1700480315
1700480316 运行结果如下所示:
1700480317
1700480318 ===外系统查询总收入===
1700480319
1700480320 张三11月总收入为:4133
1700480321
1700480322 ===外系统查询出勤天数===
1700480323
1700480324 李四本月出勤:22
1700480325
1700480326 在该例中,我们使用了门面模式对薪水计算子系统进行封装,避免子系统内部复杂逻辑外泄,确保子系统的业务逻辑的单纯性,即使业务流程需要变更,影响的也是子系统内部功能,比如奖金需要与基本工资挂钩,这样的修改对外系统来说是透明的,只需要子系统内部变更即可。
1700480327
1700480328
1700480329
1700480330
1700480331 设计模式之禅 33.2.3 最佳实践
1700480332
1700480333 门面模式和中介者模式之间的区别还是比较明显的,门面模式是以封装和隔离为主要任务,而中介者模式则是以调和同事类之间的关系为主,因为要调和,所以具有了部分的业务逻辑控制。两者的主要区别如下:
1700480334
1700480335 ❑功能区别
1700480336
1700480337 门面模式只是增加了一个门面,它对子系统来说没有增加任何的功能,子系统若脱离门面模式是完全可以独立运行的。而中介者模式则增加了业务功能,它把各个同事类中的原有耦合关系移植到了中介者,同事类不可能脱离中介者而独立存在,除非是想增加系统的复杂性和降低扩展性。
1700480338
1700480339 ❑知晓状态不同
1700480340
1700480341 对门面模式来说,子系统不知道有门面存在,而对中介者来说,每个同事类都知道中介者存在,因为要依靠中介者调和同事之间的关系,它们对中介者非常了解。
1700480342
1700480343 ❑封装程度不同
1700480344
1700480345 门面模式是一种简单的封装,所有的请求处理都委托给子系统完成,而中介者模式则需要有一个中心,由中心协调同事类完成,并且中心本身也完成部分业务,它属于更进一步的业务功能封装。
1700480346
1700480347
1700480348
1700480349
[ 上一页 ]  [ :1.7004803e+09 ]  [ 下一页 ]