医院的接待员负责代为挂号、划价、缴费、取药等,商场的导购员 帮助你更方便的购物、结账。和这两个角色的功能类似,facade pattern 门面模式就是为了给一个复杂的系统提供更简单、容易的使用接口,简称门面,外部对象可以轻松地使用该门面与复杂系统进行交互。
门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。
就如同医院的接待员一样,门面模式的门面类将客户端与子系统的内部复杂性分隔开,使得客户端只需要与门面对象打交道,而不需要与子系统内部的很多对象打交道。
其实我们自己也常用到或看到门面模式。在android系统中门面模式不要太多。我们通常会给一个模块子系统提供一个XXXManager类,用于统一访问该模块。这就是门面模式的应用。我个人觉得android中AudioManager、WifiManager等都算是门面模式,他们封装了android系统的audio、wifi子系统的复杂操作。