1. 概念

    将某个类的接口转换成与另一个接口兼容。适配器通过将原始接口进行转换,给用户提供一个兼容接口,使得原来因为接口不同而无法一起使用的类可以得到兼容。

  2. 应用场景

    老代码接口不适应新的接口需求,或者代码很多很乱不便于继续修改,或者使用第三方类库。

<?php
interface Weather
{
    public function show();
}

class PhpWeather implements Weather
{
    public function show()
    {
        $weatherInfo = ['weather' => '雨', 'tep' => 6, 'wind' => 3];
        return serialize($weatherInfo);
    }
}


//兼容模式 使得java能够直接使用
interface WeatherA
{
    public function getWeather();
}

class JavaWeather implements WeatherA
{
    protected $weather;

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

    public function getWeather()
    {
        $info = unserialize($this->weather->show());
        return json_encode($info);
    }
}



$weather = new PhpWeather();
// $info = unserialize($weather);
// var_dump($info);

$java_weather = new JavaWeather($weather);
$info = json_decode($java_weather->getWeather());
var_dump($info);