小弟今天要讲的是外观模式(facade),简单的来讲外观模式是用来解决子系统的使用难度。当你的系统中有越来越多的子系统时,创建一个统一的访问方式可以降低子系统的使用复杂度。
现实例子如到湘菜馆吃饭,找座,点菜,上菜,结帐,我们可以想象一下,整个过程假如没有服务员的话,那么首先我要亲自找座位,如果想要包厢那还的一个一个看有没有人,找到座位后还得自己根据人数放置碗筷,接着点菜,看完菜单后又的跑到厨房通知厨师,完了还的不时去看菜是否已经做好,做好的菜还得自己端上桌。酒足饭饱了之后该买单了,这是时候又的跑到前台去结帐。由此可见整个过程相当的繁琐。如果有这样的店,我相信你去了一次后,不会再去第二次了。其实顾客的目的只是吃饭,但中间做了一些不应该顾客做的事情,使得吃饭过程变复杂了。有了服务员就不同了,我只需要告诉服务员,要什么样的座位,多少人吃饭,吃什么菜喝什么酒,其他的事情都有服务员处理,最后通知服务员买单。这就是一个外观模式,有时候也叫门面模式,服务员就是个门面,通过跟他打交道就可以完成整个吃饭过程。