概念
整体而言,应该对子系统中的类进行重构,直到每个类都有一个明确的目的。这可以使你的代码更容易维护,但也可能让使用该子系统的用户变得无所适从,为了让调用这些代码的开发人员使用更为方便,可以为子系统提供示例程序或者外观类。通常,示例程序可以独立运行,却无法重用,仅用于演示使用子系统的方法。外观类则是可配置,可重用的类,提供了高层次的接口,使得子系统的使用更加方面。
摘自《Java设计模式》第2版 John Metsker 著 张逸 史磊 译
个人理解
说白了,上游系统或者说一个封装的jar包里提供了调用者所需的所有方法,往往这些方法是通过组合的方式,才能满足调用者的需求,外观模式就是对上游系统或者jar包提供一个说明书。
例如,配置一台电脑所需的配件均可以从电脑城获得(这里电脑城可以理解成一个上游系统),作为小白的我(客户端),即使买了配件,也不会装,这时,如果有个大牛为我提供了安装说明,将这些配件的装配图给我,那么我就可以根据装配图更加便捷的配我的电脑。