php 设计模式之 适配器(Adapter)



1. 适配器模式

将一个类的接口转换成希望的另外一个接口

Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作


2. 实列

class AliMessage {
    public function send() {
        echo "ali发送短信" . PHP_EOL;
    }
    public function push(){
        echo "ali发送推送" . PHP_EOL;
    }
}

class BaiduYunSDKAdapter extends AliMessage{
    private $message;

    public function __construct($message){
        $this->message = $message;
    }

    public function send(){
        $this->message->transmission_msg();
    }
    public function push(){
        $this->message->transmission_push();
    }
}
class BaiduMessage{
    public function transmission_msg() {
        echo "baidu发送短信" . PHP_EOL;
    }
    public function transmission_push() {
        echo "baidu发送推送" . PHP_EOL;
    }
}

$baiduYunMessage = new BaiduMessage();
// 使用ali发送
$message = new AliMessage();
$message->send();
$message->push();

// 替换成baidu
$bdAatper = new BaiduYunSDKAdapter($baiduYunMessage);
$bdAatper->send();
$bdAatper->push();

3. 使用场景

  1. laravel 文件系统模块 FilesystemAdapter 类,使用的适配器模式
  2. 之前接口返回 XML 格式数据,可以转换成 JSON
  3. 连接不同的数据库
posted @ 2020-12-28 22:10  linsonga  阅读(88)  评论(0)    收藏  举报