0
点赞
收藏
分享

微信扫一扫

设计模式-适配器、门面模式备忘 #yyds干货盘点#

适配器模式

定义

用作适配,将不兼容的接口转换成可兼容的接口。

适配器模式可以看作一种“补偿模式”,用来补救设计上的缺陷。

应用这种模式算是“无奈之举”。如果在设计初期,我们就能协调规避接口不兼容的问题


​适配器模式有三个重要角色:

  • 目标角色(Target),目标接口
  • 源角色(Adaptee),需要被转换的源接口
  • 适配器角色(Adapter),核心是实现Target接口, 组合Adaptee接口​​


实现方式

1、类适配器

继承关系来实现。继承源接口,实现目标接口,重复名字和参数的方法不用重复实现。

2、对象适配器

组合关系来实现,实现目标接口,构造器注入源角色,然后适配逻辑实现方法


应用场景

  • 封装有缺陷的接口设计
  • 统一多个类的接口设计
  • 某个功能的实现依赖多个外部系统(或者说类)。通过适配器模式,将它们的接口适配为统一的接口定义,然后我们就可以使用多态的特性来复用代码逻辑。
  • 替换依赖的外部系统
  • 当我们把项目中依赖的一个外部系统替换为另一个外部系统的时候,利用适配器模式,可以减少对代码的改动
  • 兼容老版本接口
  • 适配不同格式的数据
  • 适配器模式主要用于接口的适配,实际上,它还可以用在不同格式的数据之间的适配。

​门面模式

定义

门面模式为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。解决接口的可复用性(通用性)和易用性之间的矛盾

​解决易用性问题

  • 门面模式可以用来封装系统的底层实现,隐藏系统的复杂性,提供一组更加简单易用、更高层的接口。
  • 从隐藏实现复杂性,提供更易用接口这个意图来看,门面模式有点类似之前讲到的迪米特法则(最少知识原则)和接口隔离原则:两个有交互的系统,只暴露有限的必要的接口。除此之外,门面模式还有点类似之前提到封装、抽象的设计思想,提供更抽象的接口,封装底层实现细节。


解决性能问题

​我们通过将多个接口调用替换为一个门面接口调用,减少网络通信成本,提高 App 客户端的响应速度。

​解决分布式事务问题

设计一个包裹多个动作的接口,让多个动作在同一事务中进行

举报

相关推荐

0 条评论