适配器模式-PHP

学习框架遇到适配器问题,做下记录
1.类适配器,以继承为主要方式,扩展原有的类

interface class1
{
    function f1();
    function f2();
}

interface class2
{
    function f3();
    function f4();
}

class class3 implements class1
{
    public function f1(){
        echo "f1";
    }

    public function f2(){
        echo "f2";
    }
}

class class4 extends class3 implements class2{
    public function f3(){
        echo "f3";
    }
    public function f4(){
        echo "f4";
    }
}

$ob = new class4();
$ob->f1();
$ob->f2();
$ob->f3();
$ob->f4();

2.对象适配器,以基础类的对象传递方式扩展新的类

interface class1
{
    function f1();
    function f2();
}

interface class2
{
    function f3();
    function f4();
}

class class3 implements class1
{
    public function f1(){
        echo "f1";
    }

    public function f2(){
        echo "f2";
    }
}

class class4 implements class2{

    private $obj;

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

    public function __call($func, $args)
    {
        if (is_callable(array($this->obj, $func))) {
            return $this->obj->$func($args);
        }
    }

    public function f3(){
        echo "f3";
    }

    public function f4(){
        echo "f4";
    }

    public function f5(){
        echo "f5";
    }

}

$ob = new class4(new class3());
$ob->f1();
$ob->f2();
$ob->f3();
$ob->f4();
$ob->f5();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值