外观模式

2025年3月17日 | 阅读 3 分钟

外观是一种结构设计模式,它为库或复杂的类集合提供了更简单的接口。 Façade 这个词简单地指复杂模式的外层接口,该模式包含几个子系统。 它是四人帮设计模式定义的一个非常重要的部分。 简单地说,它定义了任何子系统都可以使用的高级接口。

主外观类会跟踪哪个子系统负责处理请求。

这种 设计模式 有助于客户端轻松地与子系统进行通信。

Façade Design Pattern

没有外观模式的问题

假设我们编写了代码来处理属于复杂框架或库的大量对象。 所以这里我们需要注意所有的依赖关系,初始化所有这些对象,以正确的顺序执行方法,等等。

例如 - 想象一下,你打电话到披萨店下订单。 接线员会接听,你的披萨将由厨师准备。 然后,它会送到你手中。 因此,有几个子任务相互关联。 我们需要创建一个可以自动化整个任务而不会干扰我们的系统。

使用外观方法解决

为了解决这个问题,我们需要一个外观方法。 它将帮助我们隐藏子系统的复杂性。 在这里,接线员是您对商店所有服务和部门的外观。

您的声音充当订购系统、支付和网关以及交付服务的接口。

让我们理解下面的例子。

示例 -

外观方法的优点

使用外观方法有几个优点; 我们描述了以下几个重要的优点。

  • 外观方法可以帮助我们隔离代码,使其免受子系统的复杂性影响。
  • 它提供了客户端和子系统之间的松散耦合。
  • 它简化了测试过程,因为它包含用于常见测试任务的便捷方法。

外观方法的缺点

以下是外观方法的一些缺点。

  • 应用外观方法是昂贵的。 为系统可靠性建立外观方法并不便宜。
  • 外观方法可能会违反外观层的构造。
  • 外观对象可能会变成一个连接到应用程序所有类的至高无上的对象。
  • 如果我们更改后续方法,可能会导致外观方法发生更改,这是不可接受的。

适用性

让我们了解一下外观方法的适用性。

  • 外观方法最重要的应用是,它为复杂的子类提供了简单的接口。
  • 当我们想要通过将子系统划分为层来为子系统提供独特的结构时,外观方法非常有用。 它还提供了客户端和子系统之间的松散耦合。

下个主题面向对象模式