适配器模式(类的适配器模式、对象的适配器模式)

131 阅读1分钟

类的适配器模式

原理:通过继承特性来实现适配器功能。

class Phone
{
    public function typecPhone()
    {
        echo "信息从Typec口的手机输出。";
    }
}

interface Vga
{
    public function vgaInterface();
}

class Typec2Vga1 extends Phone implements Vga
{
    public function vgaInterface()
    {
        $this->typecPhone();
        echo "接收到Type-c口信息,信息转换成VGA接口中...";
        echo "信息已转换成VGA接口,显示屏可以对接。";
    }
}

对象的适配器模式

原理:通过组合方式来实现适配器功能。

class Phone
{
    public function typecPhone()
    {
        echo "信息从Typec口的手机输出。";
    }
}

interface Vga
{
    public function vgaInterface();
}

class Typec2Vga2 implements Vga
{
    private $phone;
    public function __construct(Phone $phone)
    {
        $this->phone = $phone;
    }

    public function vgaInterface()
    {
        $this->phone->typecPhone();
        echo "接收到Type-c口信息,信息转换成VGA接口中...";
        echo "信息已转换成VGA接口,显示屏可以对接。";
    }
}

$Typec2Vga = new Typec2Vga2(new Phone());
$Typec2Vga->vgaInterface();