代码之家  ›  专栏  ›  技术社区  ›  jhegedus

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

  •  1
  • jhegedus  · 技术社区  · 6 年前

    这些词是什么意思 local global 平均值 this article 关于依赖注入?

    请看下面的报价:

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

    静态的。只有在连接服务图时,应用程序 通常准备好为用户请求提供服务。因此服务 对象/模块是静态的 全球的 ,以及

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ryan Pierce Williams    6 年前

    作者将区分组成应用程序的服务对象和应用程序中使用的数据对象。服务是全球性的,因为它们通常可以(通过注入)访问整个应用程序。这类服务的对象图是在用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
    }
    

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