理解php的依赖注入

27 篇文章 0 订阅
10 篇文章 0 订阅

依赖注入

用来减少代码之间的耦合

有效分离对象和它所需的外部资源

示例

现有Person类和Car类这两个类

Person类

<?php

namespace di;

class Person
{
    /**
     * 依赖 : Person类依赖于Car
     * 注入 car类注入到Person
     */
    public static function buy()
    {
         $bmw = new Car();
        return $obj->pay();
    }
}

Car类

<?php

namespace di;

class Car
{
    public function pay()
    {
        return 123;
    }
}

index调用Person类的buy方法

public function personbuy()
    {
        $singwa = new Person();
        echo $singwa->buy();
    }

可以看出此时Person类和Car类形成耦合。前者依赖后者,此时利用依赖注入的思想将Car类注入到Person类中

修改后

<?php

namespace di;

class Person
{
    /**
     * 依赖 : Person类依赖于Car
     * 注入 car类注入到Person
     */
    public static function buy($obj)
    {
        // $bmw = new Car();
        return $obj->pay();
    }
}

index调用

public function personbuy()
    {
        $singwa = new Person();
        $bmw = new Car();
        echo $singwa->buy($bmw);
    }

此时Car的对象被作为一个参数注入到Person的对象中,这就是最基本的依赖注入

也可以通过构造方法等其他方式实现依赖注入

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值