23种设计模式之外观模式

112 阅读2分钟

因为今天下午的笔试遇到了外观模式,但是我自己是没有怎么了解外观模式的,所以考试完后去了解了在这做下笔记,希望也能帮助到大家。

一.所有设计模式

image.png 图来自JavaGuide的Guide哥!谢谢他!

二.概述

外观模式是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使得子系统更容易使用。

使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端可以直接通过外观类来调用内部子系统中方法,从而外观模式让客户和子系统之间避免了紧耦合。

这是一个很官方的说明,那么其实它到底是什么呢?我们先来了解外观模式由什么组成

构成

  • 外观(Facade)角色:为多个子系统对外提供一个共同的接口。
  • 子系统(Sub System)角色:实现系统的部分功能,客户可以通过外观角色访问它。
  • 客户(Client)角色:通过一个外观角色访问各个子系统的功能。

我们可以拿Java项目看,外观即IService这个接口,子系统即ServiceImpl,实现功能的具体逻辑都写在这,客户角色就是我们的controller,这样子是不是就瞬间明白了它到底是什么呢?

三.笔试应用

笔试的题目提供了一个电脑,有cpu,memory,disk,然后用外观模式解释这三者关系。现在大家应该都会解释了吧,我也会了,哭泣,可是当时不会。

解析:

cpu相当于电脑的大脑,负责处理东西,memory相当于缓存,disk硬盘相当于真正存取文件的地方。然后电脑把这三者全部隐藏在它的外壳里面。

我们只需要进行操作,指令就会发给cpu由它去操作内存和硬盘替我们完成我们想要的任务。