Время от времени одной из моих моделей нужно будет позвонить другой. Какой лучший способ отследить это?
Я использовал массив в базовом классе каждой модели, чтобы, если Модель A вызывала Модель B более одного раза, второй и последующие вызовы возвращали существующий экземпляр, а не загружали новый.
Хотя это хорошо работает для простых случаев, я вижу, что у него есть ограничения. Например, возьмем случай, когда Модель A загружает Модель B и Модель C; тогда Модель C нуждается в доступе к Модели B (или даже к A) - она снова загрузит класс!
Я подозреваю, что мне нужен координирующий объект, внешний по отношению к модельным классам, который действует как хранилище. На какие шаблоны я должен смотреть?
Кстати, я использую PHP.
РЕДАКТИРОВАТЬ: Другое соображение заключается в том, что мои представления также могут вызывать методы модели напрямую. В этих случаях имеет смысл обслужить уже созданную модель, а не новую ...
Спасибо!