返回依赖注入小案例...登陆

依赖注入小案例

意外2019-05-23 17:40:55210
<?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这个对照着类名,不允许随便改动;

最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送