abstract:一、示例代码<?phpclass Girl{ public function work() { return '会做饭'; } public function hobby() {
一、示例代码
<?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>';
//依赖注入:将当前依赖的对象,以参数方式注入到当前类中,简称:依赖注入
//1.构造方法实现依赖注入
class Boy1
{
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 '<hr>';
//2.普通方法来实现依赖注入
class Boy2
{
public function buy(Girl $girl)
{
return '我的女朋友'.$girl->hobby();
}
}
$girl=new Girl;
$boy2=new Boy2;
echo $boy2->buy($girl);
二、运行结果
三、优势
传统的代码,每个对象负责管理与自己需要依赖的对象,导致如果需要切换依赖对象的实现类时,需要修改多处地方。
同时,过度耦合也使得对象难以进行单元测试。依赖注入把对象的创造交给外部去管理,很好的解决了代码紧耦合(tight couple)的问题,是一种让代码实现松耦合(loose couple)的机制。
3.松耦合让代码更具灵活性,能更好地应对需求变动,以及方便单元测试。
Correcting teacher:查无此人Correction time:2019-05-10 14:19:29
Teacher's summary:完成的不错。编程有很多编程方式,要多了解。继续加油。