Добрый день,
описываю ситуацию:
есть класс Product, который содержит всю информацию о товаре. Так же есть куча других классов, которые его используют. При создании экземпляра класса Product используется id товара, по которому из бд грузится инфа в класс.
Однако т.к. много классов которые используют класс Product, в силу несовершенства архитектуры экцемпляр одного и того же продукта может быть создан несколько раз, а если учесть, что таких продуктов может быть много, а информация о продукте достаточно обширна, то хочется избежать такого кол-ва запросов к бд.
Мне пришло в голову решение создать еще один класс ProductBase со статической переменной products (@var Product[]) и методов getProduct() (@return Product), который в случае, если экземпляр этого продукта был уже создан возвращал его из переменной products, иначе создавал такой экземпляр и сохранял его в эту самую переменную.
Мне такое решение не нравится, и уверен, что умные люди давно придумали более красивых выход из данной ситуации. Не подскажите мне его?
Надеюсь, предложенные решения не будут связаны с мемкешом, редисом и др. подобными бд. Интересует именно структурное решение.
|