【设计模式】【结构型】【门面模式】Facade Design Pattern

门面模式/外观模式(Facade Design Pattern)

门面模式为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。

门面模式的原理与实现

  • 假设有一个系统 A,提供了 a、b、c、d 四个接口。系统 B 完成某个业务功能,需要调用 A 系统的 a、b、d 接口。利用门面模式,我们提供一个包裹 a、b、d 接口调用的门面接口 x,给系统 B 直接使用。

门面模式的应用场景举例

  • 解决易用性问题
    • 门面模式可以用来封装系统的底层实现,隐藏系统的复杂性,提供一组更加简单易用、更高层的接口。比如,Linux 系统调用函数就可以看作一种“门面”。它是 Linux 操作系统暴露给开发者的一组“特殊”的编程接口,它封装了底层更基础的 Linux 内核调用。
  • 解决性能问题
  • 解决分布式事务问题

重点回顾

  • 我们知道,类、模块、系统之间的“通信”,一般都是通过接口调用来完成的。接口设计的好坏,直接影响到类、模块、系统是否好用。所以,我们要多花点心思在接口设计上。我经常说,完成接口设计,就相当于完成了一半的开发任务。只要接口设计得好,那代码就差不到哪里去。
  • 接口粒度设计得太大,太小都不好。太大会导致接口不可复用,太小会导致接口不易用。在实际的开发中,接口的可复用性和易用性需要“微妙”的权衡。针对这个问题,我的一个基本的处理原则是,尽量保持接口的可复用性,但针对特殊情况,允许提供冗余的门面接口,来提供更易用的接口。
  • 适配器是做接口转换,解决的是原接口和目标接口不匹配的问题。(接口功能大致相似)
  • 门面模式做接口整合,解决的是多接口调用带来的问题。(接口功能多样)
posted @ 2021-01-19 14:46  kudo_shini  阅读(48)  评论(0编辑  收藏  举报