Blogger Information
Blog 42
fans 4
comment 0
visits 30804
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0522 依赖注入的实现原理(构造器与普通方法)
小丑的博客
Original
1084 people have browsed it

实例

<?php
class Email{
    public function sendEmail(){
        return "短信验证";
    }
}

class Register{
    public function regiser(){
        $email = new Email();
        echo "注册成功,请输入".$email->sendEmail();
    }
}
///在类中直接实例化 存在耦合 不利于代码维护;

$register = new Register();
$register->regiser();
echo "<hr>";

///构造方法注入;
///将实例化类以参数方式传入
class Register1{

    ///引用类实例化存放
    private $em = null;

    public function __construct(Email $email)
    {
        $this->em = $email;
    }

    public function register(){
        echo "注册成功,请输入".$this->em->sendEmail();
    }
}


$em = new Email();
$re = new Register($em);
$re->regiser();
echo "<hr>";


//一般方法中注入
class Register2{
    public function register(Email $email){
        echo "注册成功,请输入".$email->sendEmail();
    }
}

$em = new Email();
$re = new Register2();
$re->register($em);

运行实例 »

点击 "运行实例" 按钮查看在线实例

大多数面向对象编程语言,在调用一个类的时候,先要实例化这个类,生成一个对象。
如果你在写一个类,过程中要调用到很多其它类,甚至这里的其它类,也要“依赖”于更多其它的类,那么可以想象,你要进行多少次实例化。

这就是“依赖”的意思。

依赖注入,全称是“依赖注入到容器”, 容器(IOC容器)是一个设计模式,它也是个对象,你把某个类(不管有多少依赖关系)放入这个容器中,可以“解析”出这个类的实例。

所以依赖注入就是把有依赖关系的类放入容器(IOC容器)中,然后解析出这个类的实例。仅此而已。





Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post