有两种类型的依赖注入http://www.javatpoint.com/dependency-injection-in-spring
然而,以下哪项更有效?为什么?或者它们是否相同?换句话说,依赖注入vs 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 injection through constructors or property setters?更多地是关于使用哪种依赖方法。后面的问题是关于证明使用哪种DI方法(Constructor或Setter / Getter)。
然而,我的问题是关于DI与新对象的关系。我们为什么要使用DI?为什么不只是new
类并使用该对象?
注意:在我的问题中,示例代码是在PHP中。有了PHP和JavaSpring的经验,我在两种语言中使用DI或OOP都没有太大区别。