总第73篇
在日常生活中,有时为了方便,我们会找一个对接人,将复杂的业务通过这个对接人来提供一整套统一的服务,从而我们不用关心内部复杂的运行机制,这种方式在程序中称为门面模式。本篇将详细梳理这种设计模式。
1.门面模式的概念
门面模式(Facade Pattern
)也称作外观模式,是一种常见的封装模式。它要求一个子系统的的外部与其内部的通信必须通过一个统一的接口对象进行,门面模式定义一个高层次的接口,使子系统更易于使用。
门面模式的通用类图关系如下图所示:
![v2-eb1edecdb88c2cbb23abd3a6a591835d_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/84c77fafd9054ba079729146470c3948.png)
从上图可以看出,Facade
封装了子系统的复杂实现,给外部提供了一个统一的接口,用户只需要通过Facade
来访问子系统,它也是访问子系统内部的唯一通道。门面模式主要包含两个角色:
Facade
门面角色:客户端可调用的门面对象,它没有实际的业务逻辑,只是一个委托类;subsystem
子系统角色: 可以同时有一个或多个子系统,每个子系统都不是一个单独的类,而是一个类的集合。子系统并不知道门