![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 6 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Moje pytanie wynika z ciekawości. Mamy klasę np. klasaPolaczenie bedaca singletonem odpowiadającą za łączenie z bazą danych, wykonywanie zapytań itd.. Klasa ta jest singletonem więc jest finalna więc nie mozna po niej dziedziczyc.
I mam pytanie czy Wy w innych klasach wymagających dostępu do bazy danych, np. w klasie klasaGaleria, która mogłaby robić różne rzeczy związane z obrazkami, w tym niektore wymagajace dostepu do bazy danych, tworzycie obiekt klasy klasaPolaczenie w konstruktorach takich klas jak np. w konstruktorze klasaGaleria czy postepujecie jakos inaczej ? ![]() ![]() Ten post edytował nieraczek 21.04.2009, 18:10:21 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 405 Pomógł: 6 Dołączył: 12.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak - nie używam MVC.
W opisanym przeze mnie sposobie nie muszę już tworzyć obiektu klasy klasaPolaczenie, wystarczy, że stworzę obiekt np. klasy klasaGaleria - więc zamiast tworzyć dwa obiekty - wystarczy jeden - nie wiem tylko czy to rozwiązanie jest ok ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Najprostsze rozwiązanie to wzorzec Singleton lub Registry. Pozdrawiam! -------------------- |
|
|
![]()
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%) ![]() ![]() |
Jesli na pewno (na 100%) bedziesz uzywal jednej bazy to mozesz zrobic singletona, wtedy taka galeria czy cokolwiek latwo sobie znajdzie obiekt polaczenia z baza.
Dla dwu i wiecej baz - zaczyna sie fajna zabawa, bo musisz wskazywac, ktorej bazy uzyc przy danej operacji (zaladowania, updejtu, kasowania, dodawania), obiekty musza wiedziec z ktorej bazy sa, itd. Wzorzec: http://martinfowler.com/eaaCatalog/unitOfWork.html , Przyklad dla Doctrine http://209.85.129.132/search?q=cache:e3eTT...mp;client=opera A w Propelu wyglada to tak (no chyba ze maja cos jeszcze - nie znam, nie zagladalem do dokumentacji) http://www.lampjunkie.com/2008/04/using-mu...ny-with-propel/
Cytat W opisanym przeze mnie sposobie nie muszę już tworzyć obiektu klasy klasaPolaczenie, wystarczy, że stworzę obiekt np. klasy klasaGaleria - więc zamiast tworzyć dwa obiekty - wystarczy jeden - nie wiem tylko czy to rozwiązanie jest ok I nie dziedzicz galeria po klasie bazy danych. Lepiej pobrac w niej singletona polaczenia z baza. Ten singleton sam sie polaczy przy pierwszym tworzeniu jego obiektu. A co do dziedziczenia: stworz klase Core, gdzie wrzucisz wszystko: obsluge bazy, szablonow, model, akcje, sesje, wysylke emaili a potem dziedzicz Galeria extends Core - podoba ci sie to? a wlasnie w tym kierunku zmierzasz ![]() Ten post edytował dr_bonzo 22.04.2009, 07:48:11 -------------------- Nie lubię jednorożców.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.07.2025 - 10:33 |