适配器模式

<?php

/*虫族基类*/
class Zerg
{
    public $blood;//血
    //恢复血的方法
    public function restoreBlood()
    {
        echo "自动逐渐恢复兵种的血...";
    }
}

/*钻地的类*/
class Burrow
{
    //钻地的方法
    public function burrowOperation()
    {
        echo '我钻地了!'; //钻地的动作,隐形等等
    }
}


/*刺蛇的类*/
class Hydralisk extends Zerg //继承虫基类的复血能力
{
    public $burrow;//用一个属性来存放钻地对象
    //构造方法,因为php不允许默认值采用对象,所以把“钻地”通过初始化赋值给$burrow
    public function __construct()
    {
        $this->burrow=new Burrow();
    }
    //钻地的方法
    public function burrowOperation()
    {
        $this->burrow->burrowOperation();//!!!这里是关键点,调用钻地属性存放的对象,使用钻地类的方法
    }
}


$h1 = new Hydralisk();//制造一个刺蛇
$h1->burrowOperation();//让他钻地
$h1->restoreBlood();//复血
?>
原文地址:https://www.cnblogs.com/jiufen/p/4991802.html