10.3 懒惰的老板请客
这里给出一个老板请客吃饭的场景,老板发现大家最近干活很努力,准备犒劳一下大家,老板想了一下整个过程,大致需要做如下事情。
预定桌子:subscribe()
点 菜:waitForAnOrder()
做 菜:cookDish()
老板讲话:address()
上 菜:serveDishes()
结 账:check()
“原来请人吃饭也要这么麻烦”,老板嘀咕着,抬起头正好看见了助理,他就索性把请客的事情全部交给助理去办了。
这一个是虚拟的场景,或许你已经是老板,让助理处理这些事情也早已习以为常了,那么,这里提到的助理正是充当了Façade的角色。有了助理,老板请客吃饭就简单了许多。
助理准备晚餐:prepareDinner()
老板发表讲话:address()
助理结束晚餐:endDinner()
助理的模拟代码片段大致如下所示。
在prepareDinner()方法中,助理预定位置,点菜并吩咐厨师做饭;在endDinner()方法中,助理负责让服务员上菜,最后结账。这样,模拟老板的代码如下所示。
老板除了自己发言之外,其他事情都交给助理去处理了,我们的测试程序如下所示。
测试的执行结果如下所示。