门面模式

设计模式

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

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框架的事务,将这两个操作放在一起执行。

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值