Adapter模式的定义:把一个类的接口变换成客户端所期待的另外一种接口,使得原本由于接口不兼容而不能再一起工作的那些类可以一起工作。
/**
* 适配器模式
*
*/
interface Weather
{
public function show();
}
class PHP_Weather implements Weather
{
public function show()
{
#得到天气信息
$weterwInfo = ["weater" => "小雨", "tep" => 6, "wind" => 3];
return serialize($weterwInfo);
}
}
interface WeaterAdapter{
public function getWeater();
}
class Jave_Weater implements WeaterAdapter
{
public $weater;
public function __construct(Weather $weater)
{
$this->weater = $weater;
}
public function getWeater()
{
$weterInfo = unserialize($this->weater->show());
return json_encode($weterInfo);
}
}
$obj = new PHP_Weather();
//$weterwInfo = unserialize($obj->show());
$obj1 = new Jave_Weater($obj);
$weterwInfo = json_decode($obj1->getWeater(),true);
echo "温度: {$weterwInfo['tep']}<br/>";
echo "风力: {$weterwInfo['wind']}<br/>";
echo "天气: {$weterwInfo['weater']}<br/>";