结构型-外观模式(Facade)

介绍

外观模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

真实世界类比

电话购物的示例

电话购物

当你通过电话给商店下达订单时 接线员就是该商店的所有服务和部门的外观 接线员为你提供了一个同购物系统 支付网关和各种送货服务进行互动的简单语音接口

外观模式示例:

我们将创建一个 Shape 接口和实现了 Shape 接口的实体类。下一步是定义一个外观类 ShapeMaker

ShapeMaker 类使用实体类来代表用户对这些类的调用。FacadePatternDemo 类使用 ShapeMaker 类来显示结果。

 

 

 

 

 执行程序,输出结果:

Circle::draw()
Rectangle::draw()
Square::draw()

 

在 Java 中使用模式

识别方法 外观可以通过使用简单接口 但将绝大部分工作委派给其他类的类来识别 通常情况下 外观管理着其所使用的对象的完整生命周期

1、javax.faces.context.FacesContext 在底层使用了 Life­Cycle View­Handler 和 Navigation­Handler 这几个类 但绝大多数客户端不知道

2、javax.faces.context.ExternalContext 在内部使用了 Servlet­Context Http­Session Http­Servlet­Request Http­Servlet­Response 和其他一些类

 

转:https://www.runoob.com/design-pattern/facade-pattern.html

转:https://refactoring.guru/

 

posted @ 2020-11-27 16:16  fangyanr  阅读(129)  评论(0编辑  收藏  举报