2

依赖注入有两种类型http://www.javatpoint.com/dependency-injection-in-spring

  1. 基于构造函数的依赖注入
  2. 基于 Setter 的依赖注入

但是,以下哪一项更有效,为什么?还是它们相同?,换句话说,依赖注入与new对象?

class User
{
   private $departmentRepo;

   public function __construct()
   {
       $this->departmentRepo = new DepartmentRepository();
   }
}

// OR

class User
{
   private $departmentRepo;

   public function __construct(DepartmentRepository $departmentRepo)
   {
     $this->departmentRepo = $departmentRepo;
   }
}

编辑

@Chetan Ameta,Federico,Sougata 通过构造函数或属性设置器进行依赖注入?更多的是关于使用哪种 Dependency 方法。后面的问题是关于证明使用哪种 DI 方法(构造函数或 Setter/Getter)。

但是我的问题是关于 DI 与 new 对象。为什么我们使用 DI?为什么不只是new类并使用对象?注意:在我的问题中,示例代码使用 PHP。体验过 PHP 和 JavaSpring,我看不出在这两种语言中使用 DI 或 OOP 有多大区别。

4

0 回答 0