摘要:<?php class Person { public function work() { return '挣钱'; &
<?php
class Person
{
public function work()
{
return '挣钱';
}
public function pay()
{
return '花钱';
}
}
class Son
{
public function getInfo()
{
$dad = new Person();
return '爸爸'.$dad->work();
}
}
$son = new Son();
echo $son->getInfo();
echo '<hr>';
//1. 构造方法依赖注入
class Boy1
{
private $dad = null;
public function __construct(Person $dad)
{
$this->dad = $dad;
}
public function getInfo()
{
return '父亲'.$this->dad->work();
}
}
//将实例化外部对象的语句放在了类的外部
$dad = new Person;
$boy1 = new Boy1($dad);
echo $boy1->getInfo();
echo '<hr>';
//2.普通方式依赖注入
class Boy2
{
public function buy(Person $da)
{
return '爹滴'.$da->pay();
}
}
$baba = new Person;
$boy2 = new Boy2();
echo $boy2->buy($baba);单例模式防止资源浪费
工厂模式解决高度耦合
依赖注入在类外实例化对象以参数形式注入
方法中引用对象,通过参数的方式传递到当前类中
具体好处估计在实际项目中才能更有体会,先记下来有这么回事吧
感谢Peter的解答,希望之后的实践中,能感受到‘’一处更新, 全站可用”的爽快
批改老师:天蓬老师批改时间:2018-12-20 20:36:36
老师总结:依赖注入关键点,在于对象实例化的位置, 不在类方法中, 对象参数是通过参数方式传到方法中