一、外观模式介绍

外观模式又叫门面模式(Facade Design Pattern)。门面模式也是结构型模式,一种对象组合的模板。
门面顾名思义,就是对现有的复杂的调用提供一个统一的更简单易用的接口门面。
其实在日常开发中,我们不经意就已经在使用门面模式。
在微服务为主流的当下,针对项目我们会细分为多个子系统提供服务,比如:用户系统,订单系统等。
不过在开发中通常会提供聚合服务,比如:对 app 提供的服务的接口服务系统,对 h5 提供服务接口的系统,对后台提供服务的系统等。
而这些系统就是子系统的门面。
对应的结构图如下:
[设计模式]-[结构型]-外观-介绍及应用 - 图1
如果没有最外层的门面聚合层,app服务、h5服务、那么完成某种业务操作,比如:下单;客户端就需要发送更多的请求,才能够完成一次下单操作。
这些门面(聚合层)的作用就是聚合多个子系统的接口,提供一组简单易用的接口给外层提供服务。
门面可以简单理解为就是封装,将使用复杂,流程繁杂的接口调用进行封装,封装一个新的,简单易用的API。

二、门面模式使用场景

在前面提到的 app、H5 聚合层就是门面,将所有子系统的操作根据业务进行聚合组成一个门面对外提供服务。

该聚合的操作,能够减少网络请求的次数,请求次数减少能够减少网络开销,带来性能上的提升。

而针对代码的聚合,简单的理解就是完成一项业务需要调用三个方法,此时将三个方法聚合成一个方法,而实现该业务功能,只需要调用一个方法,而不用调用更多的方法来实现。

宽泛来讲只要是对已有的一个或者多个代码调用进行整合,提供新的间接的调用的,都可以叫做是外观模式。


【公众号】花好夜猿
wxlogo.jpg