php设计模式之适配器(adapter)模式

该模式属于结构型模式

什么是适配器模式?

将一个类的接口转换成客户希望的另外一个接口,使得原本不兼容的接口能够一起工作。通俗的理解就是将不同接口适配成统一的接口。


生活中就有很多适配器,比如 电源适配器220V。  这里面呢 就是将220V的电压通过一个中间的一个变压器,变成我们一个适用的5V的电压。


话不多说上代码:

<?php

interface PerfectMan
{
    public function cook();
    public function writePhp();
}


//Wife类是已知的类,假设我们不方便修改该类中的代码
class Wife
{
    public function cook()
    {
        echo '我会做满汉全席<br/>';
    }
}




class Man implements PerfectMan
{
    protected $wife;

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

    public function writePhp()
    {
        echo '我会写php代码<br/>';
    }


    /*
     *还要实现接口类中的cook()方法,但是Wife类中已经有cook方法了,我们没有必要自己在实现一遍cook方法,
     *所以我们使用已知的Wife类来间接的实现接口中的cook()方法
     *
     *这就是适配器模式。我们通过适配器模式就达到了统一接口的目的
     */
    public function cook()
    {
        $this->wife->cook();
    }
}


//测试
$man = new Man(new Wife);

$man->cook(); //output:我会做满汉全席



声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

精彩评论

全部回复12人评论7,777人参与