介绍
外观模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
真实世界类比
电话购物。
当你通过电话给商店下达订单时, 接线员就是该商店的所有服务和部门的外观。 接线员为你提供了一个同购物系统、 支付网关和各种送货服务进行互动的简单语音接口。
外观模式示例:
我们将创建一个 Shape 接口和实现了 Shape 接口的实体类。下一步是定义一个外观类 ShapeMaker。
ShapeMaker 类使用实体类来代表用户对这些类的调用。FacadePatternDemo 类使用 ShapeMaker 类来显示结果。
执行程序,输出结果:
Circle::draw()
Rectangle::draw()
Square::draw()
在 Java 中使用模式
识别方法: 外观可以通过使用简单接口, 但将绝大部分工作委派给其他类的类来识别。 通常情况下, 外观管理着其所使用的对象的完整生命周期。
1、javax.faces.context.FacesContext
在底层使用了 LifeCycle
、 ViewHandler
和 NavigationHandler
这几个类, 但绝大多数客户端不知道。
2、javax.faces.context.ExternalContext
在内部使用了 ServletContext
、 HttpSession
、 HttpServletRequest
、 HttpServletResponse
和其他一些类。
转:https://www.runoob.com/design-pattern/facade-pattern.html
转:https://refactoring.guru/