依赖注入小案例

Original 2019-05-09 17:50:45 240
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);


二、运行结果

QQ图片20190509174559.png

三、优势

  1. 传统的代码,每个对象负责管理与自己需要依赖的对象,导致如果需要切换依赖对象的实现类时,需要修改多处地方。

  2. 同时,过度耦合也使得对象难以进行单元测试。依赖注入把对象的创造交给外部去管理,很好的解决了代码紧耦合(tight couple)的问题,是一种让代码实现松耦合(loose couple)的机制。

     3.松耦合让代码更具灵活性,能更好地应对需求变动,以及方便单元测试。

Correcting teacher:查无此人Correction time:2019-05-10 14:19:29
Teacher's summary:完成的不错。编程有很多编程方式,要多了解。继续加油。

Release Notes

Popular Entries