【问题标题】:How many Dependency Injection Containers should I create?我应该创建多少个依赖注入容器?
【发布时间】:2012-02-07 11:46:26
【问题描述】:

我有各种不同的模型,其中许多模型至少有一个依赖项(通常是 Db 适配器)。我刚刚进入 DIC 或 IoC 的概念,我正试图围绕所需的内容进行思考 - 所有示例通常都显示了使用容器创建单个对象的简单方法。

如果我有很多用户模型、很多博客模型以及各种各样的其他模型,我该如何管理?有 1 个大容器、许多不同的小容器,甚至是单个工厂 PER 模型是否很常见?

还是我已经在错误地思考这个问题了?

注意:如下所述,按模型,我相信我的意思是“域模型”。更具体地说 - 帮助我管理特定于我的网站/应用程序的数据的类,例如用户、博客等。

【问题讨论】:

  • 如何从数据库中获取模型对象?例如,你有$user1 = Users::load($id)吗?或$users = new Users($db); $user1 = $users->load($id)$user1 是什么类?那是Users 还是其他类,也许是User?我认为您的困惑也来自于此,因为它可能是一个非常不寻常的类结构,不适合 DI,并且与您会发现的任何 DI 教程都不同

标签: php dependency-injection ioc-container


【解决方案1】:

应用程序的一个容器通常就足够了。有一个概念叫做Composition Root,它描述了如何正确使用 DI 容器。

用户、博客等业务模型类通常不会从容器中提取。您提供指定的工厂,这些工厂又可以注入到需要创建模型对象的那些类中。

【讨论】:

  • 伙计,这也回答了我的其他几个问题......谢谢!
  • @Sebastian,所以您将为每个模型(如 UserFactory、JobFactory、ProjectFactory)创建一个工厂,并在引导文件中定义依赖关系?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-07
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
  • 2012-10-15
  • 1970-01-01
  • 2014-09-15
相关资源
最近更新 更多