首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP适配器模式

//适配器模式

class Mp4

{

  public function play($fileName)

  {

      echo 'play '.$fileName.'';

  }

}

class Mp3

{

  public function play($fileName)

  {

      echo 'play '.$fileName.'';

  }

}

class MediaAdapter

{

  public function play($audioType, $fileName)

  {

      $funcName='get_'.strtolower($audioType);

      if (method_exists($this, $funcName))

      {

          $player = call_user_func(array($this,$funcName));

          $player->play($fileName);

      }else{

          echo 'Invalid media.'.$audioType." format not supported";

      }

  }

  private function get_mp4()

  {

      return new Mp4();

  }

  private function get_mp3()

  {

      return new Mp3();

  }

}

class Vlc

{

  public function play($fileName)

  {

      echo 'play '.$fileName.'';

  }

}

class AudioPlayer extends MediaAdapter

{

  protected function get_vlc()

  {

      return new Vlc();

  }

}

$audioPlayer = new AudioPlayer();

$audioPlayer->play('Mp3','horizon.mp3');

$audioPlayer->play('Mp4','alone.mp4');

$audioPlayer->play('vlc','away.vlc');

$audioPlayer->play('avi','me.avi');

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210112A08EJ100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券