美文网首页工作生活
结构模式类型:适配器模式

结构模式类型:适配器模式

作者: Ricoywang | 来源:发表于2019-07-02 14:38 被阅读0次

Adapter,将一个类(对象)的接口(方法或者属性)转化为另一个接口,以满足用户需求,使类(对象)之间接口的不兼容问题通过适配器得以解决

适用场景

  • 1、使用一个已经存在的对象,但其方法或属性接口不符合你的要求;
  • 2、你想创建一个可复用的对象,该对象可以与其它不相关的对象或不可见对象(即接口方法或属性不兼容的对象)协同工作;
  • 3、想使用已经存在的对象,但是不能对每一个都进行原型继承以匹配它的接口。对象适配器可以适配它的父对象接口方法或属性。

示例

我们想让Duck 和Turkey 的方法接口一致方便新功能使用,由于是老的代码我们不清楚直接修改是否会造成老代码无法使用,于是我们通过TurkeyAdapter做兼容

Class Duck {
  fly () {
  }
  quack () {
  }
}
Class Turkey {
  fly () {
  }
  gobble () {
  }
}
// 适配器
Class TurkeyAdapter {
  constructor (turkey) {
    this.turkey = turkey
  }
  fly () {
    this.turkey.fly()
  }
  quack () { // 原本只有gobble 方法,通过适配器改造为quack方法
    this.turkey.gobble()
  }
}
var duck = new Duck();
var turkey = new Turkey();
var turkeyAdapter = new TurkeyAdapter(turkey);

//原有的鸭子行为
duck.fly();
duck.quack();

//原有的火鸡行为
turkey.fly();
turkey.gobble();

//适配器火鸡的行为(火鸡调用鸭子的方法名称)
turkeyAdapter.fly();
turkeyAdapter.quack();

适配器模式也经常用于日常的数据处理上,比如把一个有序的数组转化成我们需要的对象格式:

const arr = ['Javascript', 'book', '前端编程语言', '8月1日']
function arr2objAdapter(arr) {    // 转化成我们需要的数据结构
  return {
    name: arr[0],
    type: arr[1],
    title: arr[2],
    time: arr[3]
  }
}

const adapterData = arr2objAdapter(arr)

相关文章

  • 结构型模式:适配器模式

    文章首发:结构型模式:适配器模式 七大结构型模式之一:适配器模式。 简介 姓名 :适配器模式 英文名 :Adapt...

  • [Python-设计模式] 结构型模式- 适配器模式

    适配器模式 适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。 适配器模式结构 对象适配器 实...

  • 大牧絮叨设计模式:适配器模式

    [TOC] 1、 适配器模式概述 适配器(Adapter)[GOF95]是一种类型之间互相协作的结构模式,旨在将使...

  • 最常用的设计模式---适配器模式(C++实现)

    适配器模式属于结构型的设计模式,它是结构型设计模式之首(用的最多的结构型设计模式)。 适配器设计模式也并不复杂,适...

  • 适配器模式

    目录 1、什么是适配器模式? 2、适配器模式结构? 3、如何实现适配器模式? 4、适配器模式的特点? 5、适配器模...

  • 设计模式(6) 适配器模式

    结构型模式 适配器模式 类适配器和对象适配器 结构型模式 结构型模式的重点在于如何通过灵活的体系组织不同的对象,并...

  • 设计模式之:适配器模式

    适配器模式 适配器模式作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能...

  • Java中的适配器模式

    适配器模式简介 适配器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口...

  • 结构模式

    结构型模式包括:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。其中对象的适配器模式是各种...

  • 【设计模式】之适配器模式

    适配器模式 什么是适配器模式 适配器模式属于结构型模式,可以使得两个不匹配的接口可以协同工作。 适配器模式允许两个...

网友评论

    本文标题:结构模式类型:适配器模式

    本文链接:https://www.haomeiwen.com/subject/jhvzcctx.html