Dependency injection 在这篇关于依赖注入的文章中,本地对象和全局对象是什么意思?

Dependency injection 在这篇关于依赖注入的文章中,本地对象和全局对象是什么意思?,dependency-injection,global,local,Dependency Injection,Global,Local,关于依赖注入,单词local和global是什么意思 请参阅以下报价: 另一方面,数据对象是在 对用户交互、API调用、计划任务等的响应。 他们通常有一个短的、局部的寿命。他们携带和 操作应用程序处理的数据。它们可能结合在一起 数据和行为,或者是纯粹的“瘦”数据结构 服务/模块图的关键特性是它是被创建的 静态地。只有在连接服务图时,应用程序 通常准备好为用户请求提供服务。这就是服务 对象/模块是静态的和全局的,通常 无国籍 作者将组成应用程序的服务对象与应用程序中使用的数据对象区分开来。服务是全

关于依赖注入,单词
local
global
是什么意思

请参阅以下报价:

另一方面,数据对象是在 对用户交互、API调用、计划任务等的响应。 他们通常有一个短的、局部的寿命。他们携带和 操作应用程序处理的数据。它们可能结合在一起 数据和行为,或者是纯粹的“瘦”数据结构

服务/模块图的关键特性是它是被创建的 静态地。只有在连接服务图时,应用程序 通常准备好为用户请求提供服务。这就是服务 对象/模块是静态的和全局的,通常 无国籍


作者将组成应用程序的服务对象与应用程序中使用的数据对象区分开来。服务是全局性的,因为它们通常可以(通过注入)访问整个应用程序。使用DI引导应用程序时,会创建此类服务的对象图。创建此对象图后,应用程序将在整个应用程序生命周期中使用这些相同的服务

另一方面,数据对象具有局部作用域。它们根据需要动态创建、使用,然后进行处置

public class Application {
    private IRepository<User> _userRepo = null;

    // UserRepositoryService injected through DI here
    public Application(IRespository<User> userRepo) { _userRepo = userRepo; }

    ...
    public void CreateUser(String userId) {
        User newUser = new User(userId);  // Data Object Created
        _userRepo.Insert(newUser);                   
    } //  Data Object falls out of scope here
}
例如,假设您有一个UserRepositoryService,并且希望注册一个新用户。UserRepsitoryService是在整个应用程序中配置和注入的(因此是全局的),但是用户对象是动态创建的,以响应创建新用户的请求。操作完成后,用户对象可以脱离范围并被处置

public class Application {
    private IRepository<User> _userRepo = null;

    // UserRepositoryService injected through DI here
    public Application(IRespository<User> userRepo) { _userRepo = userRepo; }

    ...
    public void CreateUser(String userId) {
        User newUser = new User(userId);  // Data Object Created
        _userRepo.Insert(newUser);                   
    } //  Data Object falls out of scope here
}
公共类应用程序{
私有IRepository_userRepo=null;
//此处通过DI注入UserRepositoryService
公共应用程序(IRespository userRepo){{u userRepo=userRepo;}
...
public void CreateUser(字符串userId){
User newUser=新用户(userId);//已创建数据对象
_userRepo.Insert(newUser);
}//此处的数据对象超出范围
}

这是一个简单的例子,但希望能有所帮助。

谢谢你的回答,我仍然在努力理解DI,所以在我试图理解这个问题的答案之前,我可能首先需要理解一些更基本的概念。(我得出的结论是,这是“下一个级别”。我缺少基本知识。)@jhegedus解决这一问题的最佳方法是通过一些示例DI应用程序,获得一些编写自己的应用程序的经验。我认为每个人都需要一段时间才能理解国际奥委会,因为它把一切都抛在脑后。