所以我的问题在于我想解耦我的类,这在某种程度上是通过 DI 容器实现的。我现在唯一的问题是处理实例化其他类的类。例如,在查询数据库后,您会得到一个 ORMResult 实例,它有一个 next() 方法,该方法返回获取的行的 ORMModel 实例。
现在我如何解耦 ORMResult 和 ORMModel ?1)我的第一个想法是将DI容器作为依赖传递给ORMResult,以便它可以用于生成模型。但是通过这种方式,我将 ORMResult 与容器耦合。
2)另一种选择是拥有一个可以传递给 ORMResult 的 ORMModelBuilder 类,但是看到我有很多这样的类,因此为每个类制作构建器可能是一种巨大的浪费。
3)我可以将构建 ORMModel 的特定函数作为参数传递给 ORMResult(PHP 允许将函数作为参数传递)。在我看来,这似乎是迄今为止最好的主意。
有没有更好的方法来做到这一点?