Witam!
Mam klasę User. Konstruktor tej klasy wypełnia ją danym z bazy na podstawie ID, jeżeli nie przekażemy ID tworzy pusty obiekt (ustawia tylko NAME na ANONIM). Jednak, jak to w życiu bywa, czasami trzeba utworzyć obiekt po loginie. Powiedzmy, że jest klasa UserFactory z metodą statyczną getUserByID(); Metoda ta odpytuje bazę na podstawie loginu po czym zwraca nowy obiekt user z parametrem ID. Problemem jest to, że wykonuje 2 zapytania o dokładnie ten sam wiersz!! To jest bez sensu. W sumie Factory może tworzyć pusty obiekt i wypełnić go ręcznie danymi na podstawie danych z bazy. Ma to jednak pewne minusy

Mój pomysł polega na tym, że klasa bazy danych zawiera powiedzmy tablice (kilka tablic, dla każdej tabeli osobną) i wypełnia je danymi po każdym selekcie. Tworzy w sensie taką jakby kopie bazy danych (oczywiście tylko tych rekordów, o które i tak pytaliśmy). Teraz przy każdym kolejnym selekcie najpierw sprawdza się czy wszystkie potrzebne dane nie znajdują się jużprzypadkiem w tablicy. No i to tle

Co o tym myślicie?
BTW fajne są obiekty

mogę sobię modelować pewne zachowania, a z poziomu logiki aplikacji poprostu wykonuję jakąś metodę, np delete(). Jeśli chce zachowywać rekordy (w sensie nie usuwać ich definitywnie) w bazie to klasa bazy danych może je poprostu oznaczać jako usunięte, a selecty będą je ignorować. Zmiany wprowadzam tylko w klasie bazy

To taki troche dziwny przykład, ale właśnie coś takiego mi potzeba dla niektórych tabel