依赖注入:应该先进行哪个?属性(字段)还是依赖项?

问题描述 投票:0回答:1

我是依赖注入的新手,但遇到了一些问题。

首先我知道这一点:

[摘自Pablo Deeleman的Christoffer Noring的书“ Learning Angular-Second Edition”:

随着我们的应用程序的成长和发展,我们的每个代码实体将在内部需要其他对象的实例,这样更好在软件工程领域中称为[dependencies。那个行动将这种依赖关系传递给依赖客户端的过程称为注射。

然后,在一些教学视频中,讲师说我们想在Car类中使用Tires服务,因此我们将其注入Car Class中,然后创建一个属性(轮胎)以保存它:

public class Car {

    private Tires tires; 

    public Car(Tires tires){
        this.tires = tires;
    }
}

我对这个定义不满意,这让我感到困惑,因为我认为这个定义(教师的定义)与另一个定义形成对比。

关于DI(与About Angular相同)的大多数文章告诉我们,由于我们需要类中其他类对象的实例,因此我们有一些依赖类。但是在这个定义中,它告诉我们我们有来自不同类的对象,我们希望将其注入您的类中,您应该创建一些变量来保存这些值。

我认为令人困惑的问题是属性创建的时间。我认为首先我们创建属性,然后我们具有一些依赖关系,而不是将某些类假定为依赖项,然后创建一些属性以将那些值保存在主机类中。(客户端类)

有人可以解释一下吗?

java dependency-injection dependencies dependency-management inject
1个回答
0
投票

我认为我们首先创建属性

我认为您可能会将OOP概念与注入混淆。

YouCarservice类(与OOP无关),需要访问Tire service类,因此它希望在构造期间注入Tires实例,并且需要将其保存以供以后使用,因此它将引用存储在field(不是属性)中。

当我们决定需要保存注入的引用以供以后使用时,将定义(声明,创建)该字段。

我想你可以说我们realize时定义(“创建”)该字段,我们需要对Tire服务的引用,然后将其添加为对构造函数的依赖,但这仅仅是语义上的有关何时编写代码的信息,即在编写需要它的代码之前先准备并创建依赖项,还是在编写代码时即时创建依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.