依赖注入,参数传递代替new

原创 2018-11-09 23:07:20 14
摘要:通过参数的方式传递到当前类中,实现new类;依赖注入:将当前类依赖的对象,以参数的方式注入到当前类中两种方法实现依赖注入: 1.构造方法中实现   2.普通方式中实现class Xuexi {     public function sphp()     {

通过参数的方式传递到当前类中,实现new类;

依赖注入:将当前类依赖的对象,以参数的方式注入到当前类中

两种方法实现依赖注入: 1.构造方法中实现   2.普通方式中实现

class Xuexi
{
    public function sphp()
    {
        return '学习php';
    }

    public function ssql()
    {
        return '学习mysql';
    }
}


//用普通方式实现依赖注入
class Tody
{
    public function syes(Xuexi $tody) //(类 对象)
    {
        return '今天:'.$tody->sphp();
    }
}

$xuexi = new Xuexi;
$tody = new Tody;
echo $tody->syes($xuexi); //$tody调用syes方法,传入的参数 $xuexi对象必须是Xuexi里面的实例($xuexi = new Xuexi;)
echo '<br>';
echo '<br>';


// 构造方法实现依赖注入
class Mody
{

    private $xuexi = null;  //创建xuexi这个属性,保存在实例化该类的时候生成的对象

    public function __construct(Xuexi $xuexi) //(Xuexi是类;$xuexi是对象,对象的类型是Xuexi)
    {
        $this->xuexi = $xuexi; //用传入的对象$xuexi进行属性初始化  $xuexi对象的内容用$this->xuexi这个属性进行了保存
    }
    public function getInfo()
    {

        return '明天:'.$this->xuexi->ssql();
    }


}
//将实例化外部对象的语句放在了类的外部
$xuexi = new Xuexi;
$mody = new Mody($xuexi); //传入$xuexi对象,由$xuexi = new Xuexi进行创建的。
echo $mody->getInfo();


批改老师:韦小宝批改时间:2018-11-10 09:37:42
老师总结:嗯!写的很完整!上面的总结也很不错!继续加油吧!!

发布手记

热门词条