处理使用DI容器实例化其他类的类

时间:2013-09-27 10:05:17

标签: oop language-agnostic dependency-injection

所以我的问题在于我想要解耦我的类,我已经在某种程度上用DI容器实现了。 我现在唯一的问题是处理实例化其他类的classeі。例如,在查询数据库之后,您将获得一个ORMResult实例,该实例具有next()方法,该方法返回已获取行的ORMModel实例。

现在如何解耦ORMResult和ORMModel? 1)我的第一个想法是将DI容器作为依赖项传递给ORMResult,以便它可以用于生成模型。但是通过这种方式我将ORMResult与容器结合起来。

2)另一个选择是有一个ORMModelBuilder类,我可以传递给ORMResult,但是看到我有很多这样的类,所以为每个类创建构建器可能是一个巨大的浪费。

3)我可以将构建ORMModel的特定函数作为参数传递给ORMResult(PHP允许将函数作为参数传递)。到目前为止,这似乎是我最好的想法。

有更好的方法吗?

0 个答案:

没有答案