Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用其他模型跟踪模型?_Php_Design Patterns_Models - Fatal编程技术网

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

Php 如何使用其他模型跟踪模型?,php,design-patterns,models,Php,Design Patterns,Models,有时我的一个模型需要调用另一个。追踪这个的最好方法是什么 我在每个模型的基类中使用了一个数组,这样,如果模型A多次调用模型B,第二次和后续调用将返回现有实例,而不是加载新实例 虽然这对简单的情况很有效,但我可以看出它有局限性。例如,假设模型A加载模型B和模型C;然后模型C需要访问模型B甚至A——它将再次加载该类 我怀疑我需要一个模型类外部的协调对象,它充当存储库。我应该看什么样的模式 顺便说一句,我正在使用PHP 编辑:另一个考虑因素是我的视图也可能直接调用模型方法。在这些情况下,提供一个已经实

有时我的一个模型需要调用另一个。追踪这个的最好方法是什么

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

虽然这对简单的情况很有效,但我可以看出它有局限性。例如,假设模型A加载模型B和模型C;然后模型C需要访问模型B甚至A——它将再次加载该类

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

顺便说一句,我正在使用PHP

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

谢谢

看看在这种情况下使用的

这很容易。。每一个模型都有一个列表,上面有听众,当某件事发生时,它会对所有的听众说,嘿,发生了什么事