Не знаю возможно ли такое вообще, но возникла следующая идея, и вытекающая из нее проблема,
Нужно создать несколько объектов, каждый объект для создания делает несколько запросов к базе.
В результате работы приложения часто создаются идентичные объекты, для того чтоб каждый раз не дергать базу для их создания я решил в глобальный массив записывать ссылки на созданные объекты, далее при вызове конструктора я смотрю был ли создан объект ранее, и если да, то копирую его свойства в данный объект. Способ прекрасно работает но там есть нюанс в том, что передать данный способом получается только public свойства. Может есть вариант получше?
Еще был вариант создавать объект через статический метод который будет проверять был ли ранее создан объект и возвращать либо его, либо новый, но хотелось бы обойти только конструктором
Нет, не кеширование.
Например есть список товаров, каждый товар принадлежит определенной компании( Компания представлена в виде объекта ), но в рамках конкретного запроса есть несколько товаров одной компании. И вот тут чтоб не создавать объект данной компании повторно я хочу взять ранее созданный объект
Я пытаюсь решить именно проблему лишних запросов к БД.
Если я например выбрал 100 товаров которые принадлежат в итоге 2 компаниям. то к каждому товару привязывается небольшой объект - компания, так как главным элемент в данном случае товар, создавая каждому товару свойство компания через конструктор объекта компания у меня выйдет 100 запросов к базе, но если в том же конструкторе просматривать был ли идентичный объект ранее и использовать его копию то запроса бы вышло всего 2