如何使用其他模型跟踪模型?

时间:2012-01-21 05:56:23

标签: php design-patterns models

我的模特有时需要打电话给另一个模特。追踪这个的最佳方式是什么?

我在每个模型的基类中使用了一个数组,因此,如果模型A多次调用模型B,则第二次和后续调用将返回现有实例,而不是加载新实例。

虽然这适用于简单的情况,但我可以看到它有局限性。例如,假设模型A加载模型B和模型C;然后模型C需要访问模型B(甚至是A) - 它将再次加载类!

我怀疑我需要一个模型类外部的协调对象,它充当存储库。我应该看什么模式?

BTW,我正在使用PHP。

编辑:另一个考虑因素是我的观点也可能直接调用模型方法。在这些情况下,提供已经实例化的模型而不是新模型是有意义的......

谢谢!

1 个答案:

答案 0 :(得分:0)

看看在这种情况下使用的observer pattern

很容易..每个模型都有一个带有听众的列表,当有事情发生时,它会向所有听众说明嘿发生的事情