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

依赖注入小案例

笑颜常开2019-05-09 17:50:45240

一、示例代码

<?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.松耦合让代码更具灵活性,能更好地应对需求变动,以及方便单元测试。

最新手记推荐

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

全部回复(0)我要回复

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