Facade模式为子系统中的一组接口提供一个一致的界面.,我认为也可以看成是一个wrapper.子系统的实现细节对用户来说是透明的,用户只需通过模式提供的新的接口去享受子系统提供的服务。这种透明性带来的代价可能是我们不能获得子系统所提供的所有功能,但是好在很多时候我们确实只需要这些部分功能。并且,Facade模式不局限于此,可以扩展子系统的功能,增加额外的服务。
Facade模式可以帮助实现紧内聚低耦合,下面的图(经典图)一目了然。其实Facade模式我们可能都不经意使用过,只是没有形成一种模式或规则,例如对Berkeley DB的封装应算是Facade模式的应用实例。