-
概念
将某个类的接口转换成与另一个接口兼容。适配器通过将原始接口进行转换,给用户提供一个兼容接口,使得原来因为接口不同而无法一起使用的类可以得到兼容。
-
应用场景
老代码接口不适应新的接口需求,或者代码很多很乱不便于继续修改,或者使用第三方类库。
<?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);