Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Singleton - nie singleton
Forum PHP.pl > Forum > PHP > Pro > Archiwum Pro
Hacker
W swojej aplikacji (Frameworku - w nawiasie bo nie wiem czy to "coś" można nazwać frameworkiem) w klasie odpoowiedzialnej za reprezentacje wiersza z bazy danych za poocą obiektu chcę zastosować coś na kształt singletonu tylko, że przyjmującego 1 parametr $id. Jest to id wiersza w bazie danych (moja klasa wymaga klucza głównego), w zależności od tego czy dany wiersz podczas tego wywołania został już pobrany lub tylko stworzony obiekt zwraca stworzony już obiekt, w przeciwnym wypadku wywołuje prywatny konstruktor i zwraca nowy obiekt.
Czy takie coś jest poprawne? Czy jest to dobre? Czy ktoś to już stosuje? (jeżeli okaże się, że jest to dobre i poprawne, a nikt na to wcześniej nie wpadł to lecę to opatętować... biggrin.gif)
Jak zrealizować dziedziczenie? W każdej klasie dziedziczącej zmieniać funkcje get instance? (Klasa po której dziedziczą jest abstrakcyjna, a dziedziczące klasy reprezentują poszczególne tabele)
Jeżeli nie nadaje się to do pro proszę o przeniesienie, jeżeli już było to proszę o link i skasowanie (szukałem, ale nie znalazłem)
dr_bonzo
Cytat
w zależności od tego czy dany wiersz podczas tego wywołania został już pobrany lub tylko stworzony obiekt zwraca stworzony już obiekt, w przeciwnym wypadku wywołuje prywatny konstruktor i zwraca nowy obiekt.

Masz do tego inne wzorce: Unit of Work, ktory zajmuje sie pamietaniem ktore rekordy byly wczytane, ktore sa zmienione i na koniec sesji (nie myslic z Sesjami) zapisuje je w bazie, usuwa itd.
Do tego Identity Map ktora przechowuje juz wczytane wiersze. Przy wyciaganiu rekordu -- przez UoW sprawdza on dostepnosc rekordu w IM i gdy go nie ma to wykonuje zapytanie do bazy.
Hacker
Hmmm... ciekawe, czyli coś takiego jak chcę zastosować nie jest dobre i muszę stosować trzy klasy do tego jakoś je połączyć??
dr_bonzo
http://www.martinfowler.com/eaaCatalog/unitOfWork.html
http://www.martinfowler.com/eaaCatalog/identityMap.html
i inne wzorce http://www.martinfowler.com/eaaCatalog/, dokladnie sa opisane w jego ksiazce PoEEA

zajrzyj do http://phpdoctrine.com -- wlasciwie maja to juz zrobione, po co pisac od nowa
Hacker
Cytat
wlasciwie maja to juz zrobione, po co pisac od nowa


po to aby zdobyć nowe umiejętności, stawać się lepszym, rozumieć jak to działa i jakie ma ograniczenia, a nie tylko wziąść gotowe

{edit}
prosił bym o dyskusje czy to poprawne i jakieś do tego za - przeciw...
envp
Cytat
(jeżeli okaże się, że jest to dobre i poprawne, a nikt na to wcześniej nie wpadł to lecę to opatętować...


Ta opatentuj singletona ale szybko, bo ktoś to zrobi... snitch.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.