依赖注入有两种类型http://www.javatpoint.com/dependency-injection-in-spring
- 基于构造函数的依赖注入
- 基于 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 有多大区别。