![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 22.10.2004 Skąd: Płock Ostrzeżenie: (0%)
|
|
|
|
|
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
No chociazby przy uzyciu wzorca singleton. Tu cos pisali:
Temat: php GLOBALSand39varand39 a global var roznice |
|
|
|
Post
#3
|
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Ze wzorcem singelton należy uważać w przypadku klasy łączącej się z bazą danych. Jak wiadomo wzorzec ten zakłada, że można utworzyć tylko jeden obiekt na podstawie danej klasy, więc jeśli używasz kilku baz danych możesz mieć problem. Ale jeśli nie używasz i w przyszłości nie planujesz używać więcej niż jednej bazy, wówczas ten wzorzec pasuje jak ulał do Twojego problemu.
|
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat Ale jeśli nie używasz i w przyszłości nie planujesz używać więcej niż jednej bazy, @batman ale ty mowisz o uzywaniu kilka baz naraz? W tym samym czasie przez jedną aplikacje? Nawet jesli tak, no to przecież mozna pobierac obiekty dla kazdej bazy oddzielnie. Ja przykladowo zrobilem sobie klase Factory, która zwraca mi na zasadzie singletonu dany obiekt jaki ona trzyma. Tak wiec moge w niej miec kilka obiektów baz i kazdy moze dotyczyc innej bazy |
|
|
|
Post
#5
|
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Skoro łączysz się z kilkoma bazami danych, tworzysz kilka obiektów do obsługi różnych baz, a to kłóci się z założeniami wzorca singelton. Wspomniałeś o klasie Faktory, a to już inna para klaoszy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) W opisany sposób można podłaczyć się z wieloma bazami.
A co do używania kilku baz. Tak używam kilku baz w jednej aplikacji. Jedna baza zawiera info o kliencie, produktach, itp. Druga natomiast info o zamówieniach. Architektura ta jest zbudowana w taki sposób, ponieważ baza do zamówień zbiera informacje z kilku systemów i jest obsługiwana przez skrypty chodzące w cronie. |
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat Skoro łączysz się z kilkoma bazami danych, tworzysz kilka obiektów do obsługi różnych baz, a to kłóci się z założeniami wzorca singelton. Hmmm, no wlasnie, tworze obiekty do obslugi roznych baz, czyli de fakto to rózne obiekty (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ale do obslugi danej bazy ja zawsze dostane ten sam obiekt, bez tworzenia innych.Cytat Wspomniałeś o klasie Faktory, a to już inna para klaoszy No nie wiem. Factory mi zwraca obiekty wlasnie na podstawie wzorca singleton. Dany obiekt zwroci mi tylko raz.edit: co do Factory to chyba cie nie zrozumialem. znaczy teraz wydaje mi sie, iż myslimy podobnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) czyli faktycznie singleton w danej klasie dawalby nam tylko jeden obiekt danej klasy, ale juz Factory moze dawac na kilka obiektów danej klasy (przyklad wlasnei tych roznych baz). przy czym nie będzie powielania tych samych obiektow: do bazy xxx dostane zawsze ten sam obiekt, do bazy yyy zawsze dostane inny ten sam obiekt itd. |
|
|
|
Post
#7
|
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 |
Muszę przyznać, że masz rację co do fabryki. Można zrobić by dla każdej bazy zwracany był inny obiekt. W każdym bądź razie singleton nadaje się do zastąpienia global.
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 22.10.2004 Skąd: Płock Ostrzeżenie: (0%)
|
Ok, juz mam i chyba rozumiem;-)
Dzieki bardzo. |
|
|
|
![]() ![]() |
|
Aktualny czas: 14.06.2026 - 10:37 |