2012-01-10 98 views
2

我是新来的依赖注入容器等。如何使用依赖注入容器进行延迟加载?

我有一个用户对象,我想用容器来构建。在我的情况下,用户可能有大量的Comment对象与他/她相关联,但我不会在每次请求时都需要它们。

在此之前,我会让用户模型创建并加载评论模型本身,但我认识到这是一个不好的做法。

如果我不想加载构建用户的所有评论(例如 - 如果我想懒惰地加载评论),那么如何通过DI和DIC实现这一点?

注意: 我知道有解决方案构建,但我不想使用它们,直到我明白它们是如何工作的。这是学习基础知识的理论问题,然后我很可能会转向一个既定的框架。

回答

4

我不认为在您的模型中加载依赖关系是依赖注入容器的责任。这是ORM,数据访问对象或您的应用程序服务的工作。然后,DI容器负责配置和实例化ORM,DAO或服务类。

+0

不要憎恨我的无知,但我认为依赖注入容器的工作实际上是将依赖注入到需要它们的对象中,不是吗?我认为这是我感到困惑的地方...... – johnnietheblack 2012-01-10 19:34:34

+0

这是真的,但DI容器通常更加静态(通过XML或PHP文件重新配置)。我不知道任何可以自然地从数据库中动态获取信息的容器。应用程序逻辑应该保留在应用程序中,而不是在DI容器中。 – Daff 2012-01-10 20:04:11

+0

感谢您的回应 - DI容器对构建框架对象更感兴趣吗?例如,控制器,记录器等?那么业务逻辑的东西是由orm构建的? – johnnietheblack 2012-01-10 20:35:08