精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

適配器模式設計

冬至子 ? 來源:全棧開發的碼農 ? 作者:全棧開發的碼農 ? 2023-06-01 14:22 ? 次閱讀

適配器模式一般是在我們要把”現有的對象“應用到新的環境中時使用,通過編寫一個Adapter類,把原有的類應用到新的類中,而不必修改原有類,也不必重寫已有類。

如下圖所示,原有一個AdvancedPlayer接口類,可以播放flv和MP4格式的視頻文件。現在新建了一個MediaPlayer接口類,使之可以播放MP3、flv和MP4格式的文件。

因為已有AdvancedPlayer接口類實現了播放flv和MP4格式的文件,現在只需要編寫一個播放MP3格式文件的AudioPlayer實現類和一個Adapter實現類,在Adapter類中使用AdvancedPlayer類的對象,使之可以播放flv和MP4類型的文件。

圖片

AdvancedPlayer接口類:

package adapter;
public interface AdvancedPlayer {
  public void playFlv();
  public void playMP4();
}

FlvPlayer實現類:

package adapter;
public class FlvPlayer implements AdvancedPlayer {
  @Override
  public void playFlv() {
    System.out.println("播放Flv格式文件");
  } 
  @Override
  public void playMP4() {   
  }
}

MP4Player實現類:

package adapter;
public class MP4Player implements AdvancedPlayer{
  @Override
  public void playFlv() {
  }
  @Override
  public void playMP4() {
    System.out.println("播放MP4文件");  
  }
}

MediaPlayer接口類:

package adapter;
public interface MediaPlayer {
  public void play(String audioType, String fileName);
}

AudioPlayer實現類:

package adapter;
public class AudioPlayer implements MediaPlayer {
  Adapter adapter;
  @Override
  public void play(String audioType, String fileName) {
    if(audioType.equals("MP3")) {
      System.out.println("播放MP3:"+fileName);
    }else if(audioType.equals("flv")||audioType.equals("MP4")) {
      adapter=new Adapter(audioType);
      adapter.play(audioType, fileName);
    }else {
      System.out.println("文件格式未知");
    }  
  }
}

Adapter適配器實現類:

package adapter;
public class Adapter implements MediaPlayer{
  AdvancedPlayer advancedPlayer;
  public Adapter(String audioType) {
    if(audioType.equals("flv")) {
      advancedPlayer =new FlvPlayer();
    }else if(audioType.equals("MP4")) {
      advancedPlayer = new MP4Player();
    }
  }
  @Override
  public void play(String audioType,String fileName) {
    if(audioType.equals("flv")){
      advancedPlayer.playFlv();
    }else if(audioType.equals("MP4")) {
      advancedPlayer.playMP4();
    }  
  }
}

主函數調用方式:

package main;
import adapter.*;
public class AdapterPattern {
  public static void main(String[] args) {
    AudioPlayer audioPlayer=new AudioPlayer();

    audioPlayer.play("flv", "視頻.flv");
    audioPlayer.play("MP4", "視頻.MP4");
    audioPlayer.play("MP3", "音樂.MP3");
  }
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 適配器
    +關注

    關注

    8

    文章

    1933

    瀏覽量

    67930
  • audio
    +關注

    關注

    1

    文章

    319

    瀏覽量

    59200
  • AudioPlayer
    +關注

    關注

    0

    文章

    2

    瀏覽量

    1433
收藏 人收藏

    評論

    相關推薦

    適配器模式和代理模式的區別

    對象可以在客戶端和目標對象之間起到中介的作用,這樣起到了中介的作用和保護了目標對象的作用。  (3)高擴展性    適配器模式  在計算機編程中,適配器模式(有時候也稱包裝樣式或者包裝
    發表于 10-22 15:17

    適配器模式實現

    目錄第一章 適配器模式介紹第二章 適配器模式實現(類適配器)2.1、關系依賴圖2.2、創建交流電2.3、定義直流電2.4、創建充電器2.5、
    發表于 09-15 07:11

    適配器模式的作用

    適配器模式的作用是解決兩個軟件實體間的接口不兼容的問題。使用適配器模式之后,原本由于接口不兼容而不能工作的兩個軟件實體可以一起工作。港式插頭轉換器
    發表于 11-11 06:30

    適配器模式相關資料推薦

    結構型模式一、適配器模式(一)定義:適配器模式(Adapter Pattern)是作為兩個不兼容的接口之間的橋梁,它結合了兩個獨立接口的功能
    發表于 11-11 06:03

    缺省適配器模式基本概念

    在這一節我們就看一看第一類:缺省適配器模式一、缺省適配器模式基本概念1.1 說明當不需要全部實現接口提供的方法時,可以設計一個適配器抽象類實
    發表于 11-11 07:53

    對象適配器模式基本概念

    在這一節我們就看一看第一類:對象適配器模式一、對象適配器模式基本概念1.1 說明對象適配器模式
    發表于 11-11 07:09

    什么是硬件適配器模式

    硬件適配器模式提供一種方法,使已經存在的硬件接口能適應應用期望。當應用需要使用一個接口而硬件提供另一種時,硬件適配器模式創建元素在兩個接口之間進行轉換。
    發表于 12-21 07:55

    適配器模式的本質及分類

    什么是適配器 在計算機編程中,適配器模式(有時候也稱包裝樣式或者包裝)把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。一個適配
    發表于 10-18 15:06 ?3144次閱讀

    適配器模式和代理模式的區別

    適配器模式適配器模式有時候也稱包裝樣式或者包裝。將一個類的接口轉接成用戶所期待的。代理模式:為其他對象提供一種代理以控制對這個對象的訪問。
    發表于 01-12 11:56 ?5270次閱讀
    <b class='flag-5'>適配器</b><b class='flag-5'>模式</b>和代理<b class='flag-5'>模式</b>的區別

    適配器模式的應用

    在計算機編程中,適配器模式(有時候也稱包裝樣式或者包裝)將一個類的接口適配成用戶所期待的。一個適配允許通常因為接口不兼容而不能在一起工作的類工作在一起,做法是將類自己的接口包裹在一個已
    發表于 01-12 14:28 ?998次閱讀
    <b class='flag-5'>適配器</b><b class='flag-5'>模式</b>的應用

    JavaScript設計模式適配器模式

    適配器模式的作用是解決兩個軟件實體間的接口不兼容的問題。使用適配器模式之后,原本由于接口不兼容而不能工作的兩個軟件實體可以一起工作。港式插頭轉換器
    發表于 11-06 16:21 ?5次下載
    JavaScript設計<b class='flag-5'>模式</b>之<b class='flag-5'>適配器</b><b class='flag-5'>模式</b>

    設計模式-適配器模式-以電壓適配器為例

    超級鏈接: Java常用設計模式的實例學習系列-緒論參考:《HeadFirst設計模式》1.關于適配器模式適配器
    發表于 11-07 09:36 ?17次下載
    設計<b class='flag-5'>模式</b>-<b class='flag-5'>適配器</b><b class='flag-5'>模式</b>-以電壓<b class='flag-5'>適配器</b>為例

    什么是適配器模式?怎樣使用適配器模式進行貨幣轉換?

    在軟件開發中,通常使用具有不兼容接口的現有代碼或外部庫。 適配器模式提供了一個優雅的解決方案,充當不兼容接口之間的橋梁,無需修改現有代碼即可實現無縫集成。
    的頭像 發表于 07-19 14:35 ?558次閱讀

    設計模式中什么是適配器模式

    適配器模式(Adapter),將一個類的接口適配成用戶所期待的。
    的頭像 發表于 08-02 10:00 ?796次閱讀
    設計<b class='flag-5'>模式</b>中什么是<b class='flag-5'>適配器</b><b class='flag-5'>模式</b>?

    什么是適配器模式

    1、什么是適配器模式? Convert the interface of a class into another interface clients expect.Adapter lets
    的頭像 發表于 10-09 11:16 ?2305次閱讀
    什么是<b class='flag-5'>適配器</b><b class='flag-5'>模式</b>