依赖注入小案例

Original 2019-05-23 17:40:55 212
abstract:<?php //依赖注入练习; class Girl { public function work(){ return '会做饭'; } public function hobby(){ return '爱购物'; } } class Boy { publ
<?php
//依赖注入练习;

class Girl
{	
	public function work(){
		return '会做饭';
	}
	public function hobby(){		
		return '爱购物';
	}
}
class Boy
{
	public function getInfo(){
		$girl = new Girl;
		return '我的女朋友'.$girl->work();
	}
}
$boy = new Boy;
echo $boy->getInfo();
echo '<hr>';

//依赖注入:用构造方法;
// class Boy1
// {
// 	//根据类Boy,因为类里面最好不要new 类,所以用这个方法代替;
// 	private $girl = null;	//容器;
// 	public function __construct(Girl $girl){
// 		$this->girl = $girl;
// 	}
// 	public function getInfo(){
// 		return '我的女朋友'.$this->girl->work();
// 	}
// }
// $girl = new Girl;
// $boy1 = new Boy1($girl);
// echo $boy1->getInfo();
// echo '<br>';

// 依赖注入普通方法:
class Boy2
{
	// Girl必须是一个实例; $girl.这个相当于参数传入;Girl这个对照着类名;
	public function getInfo(Girl $girl){
		//getinfo里面的参数等于 $girl = new Girl;
		return '我的女朋友'.$girl->hobby();
	}
}
$like= new Girl;    //变量名可以随时改动
$boy2 = new Boy2;
echo $boy2->getInfo($like);    //变量名跟随实例化类的变量;
echo '<br>';

依赖注入:在类外部实例化,然后当做参数传递到类里面;因为当做是变量传入,所以比较灵活,维护方便;

$girl.这个相当于参数传入;可以改变;Girl这个对照着类名,不允许随便改动;

Correcting teacher:天蓬老师Correction time:2019-05-24 13:40:21
Teacher's summary:现在有很多框架,通过依赖注入的特征, 实现类的实例自动化, 非常的实用

Release Notes

Popular Entries