Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Singleton - nie singleton
Hacker
post 30.10.2006, 20:44:06
Post #1





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

Ostrzeżenie: (0%)
-----


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)

Ten post edytował Hacker 30.10.2006, 20:47:04


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
Go to the top of the page
+Quote Post
dr_bonzo
post 30.10.2006, 21:01:38
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


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.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Hacker
post 30.10.2006, 21:09:14
Post #3





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

Ostrzeżenie: (0%)
-----


Hmmm... ciekawe, czyli coś takiego jak chcę zastosować nie jest dobre i muszę stosować trzy klasy do tego jakoś je połączyć??


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
Go to the top of the page
+Quote Post
dr_bonzo
post 30.10.2006, 21:16:13
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


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


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Hacker
post 30.10.2006, 21:28:39
Post #5





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

Ostrzeżenie: (0%)
-----


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...

Ten post edytował Hacker 30.10.2006, 22:55:12


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
Go to the top of the page
+Quote Post
envp
post 5.11.2006, 11:33:22
Post #6





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.06.2024 - 03:54