外观模式概述:
援引朱师傅对Fascade模式的描述:口渴了 要去喝杯茶。会经历怎样的过程--取来杯子--找来茶叶--烧水--沏茶
如果你是在一家茶馆呢 则可以坐着喊服务员来做这一切
此时便由服务员代劳做这些琐事了
倘若把我们看做客户端
取杯子-选茶叶-烧水沏茶等过程往大了看:作为一个个子系统
为我们代劳的服务员呢--即是外观Fascade
用我们程序员的话讲:客户端直接跟外观类交互 以实现功能上的需求
而外观类内部去组织调用各子系统
目标 -- 使客户端与各子系统之间解耦
再一个例子:
如果要我把一辆车发动,虽然我没驾照,但给我钥匙我还是能把车开上路的。至于上路以后如何咱就不说了
显然,我并不清楚如何发送了引擎,引擎系统如何使车轮转动起来。但这并不妨碍我把车开动。
实际中我们并不需要用手推动车轮使其转动,我们踩下油门,此时汽车再根据一些其他的操作使车轮转动。油门就好比系统给我们留下的接口,不论汽车是以何种方式转动车轮,车轮变化成什么牌子的,我们要开走汽车所要做的还是踩下油门。