精华内容
下载资源
问答
  • 门面模式

    2020-11-27 14:18:23
    设计模式 本系列文章均是博主原创,意在记录学习上的知识,同时一起分享学习心得。 24种设计模式 文章目录设计模式前言一、定义二、应用场景总结 ...门面模式定义中的“子系统”也可以有多种理解方

    设计模式

    本系列文章均是博主原创,意在记录学习上的知识,同时一起分享学习心得。

    24种设计模式



    前言

    本章节学习一种新的结构型模式:门面模式。门面模式主要应用在接口设计方面,下面让我们一起来学习。


    一、定义

    门面模式,也叫外观模式,英文全称Facade Design Pattern。在GoF的《设计模式》一书中定义如下:门面模式为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。

    二、应用场景

    门面模式定义中的“子系统”也可以有多种理解方式。它既可以是一个完整的系统,也可以是一个类或者模块。

    应用场景举例:
    假设A系统有a、b、c、d接口,B系统需要分别调用a、c、d接口,利用门面模式,A系统可以把a、c、d接口组合成一个新的接口X,给到B系统调用。

    门面模式有3个优势:

    1. 解决易用性问题
      门面模式可以用来封装系统底层的实现,隐藏系统的复杂性,提供一种更简单易用、更高层的接口。
    2. 解决性能问题
      比如举例中B系统在未使用X接口之前,需要分别调用a、c、d接口,这在需要3个请求,网络通信耗时比较久,影响整个系统体验,为了提高响应速度,减少网络通信次数是很有必要的。
    3. 解决分布式事务问题
      假设银行金融系统分别有账户接口、钱包接口,在创建用户的时候需要分别为其创建账户和钱包,但是这两个操作是原子的,要么一起成功,要么一起失败。如果要支持两个接口在一个事务中执行,是比较难实现的,这设计分布式事务问题;而最简单的实现方案就是利用Spring框架的事务,将这两个操作放在一起执行。

    总结

    完成接口设计,就相当于完成了一半的开发任务。只要设计得好,代码也不会差到哪里去。尽量保持接口的可复用性,单真的特殊情况,允许提供冗余的门面接口,来提供更已用的接口。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,450
精华内容 1,780
关键字:

门面模式