![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Witam mam 2 pytania dotyczace 4 wzorcow Singleton,Registry map,Strategy i Simple factory.
Czy mi sie wydaje lub REgistry map nie jest uznawany za przyjety wzorzec nigdzie nie potrafie znalesc o nim info znalazlem 2 arty na bloku @Athlan a kilka osob powiedzialo mi zebym sie nim nie sugerowal nie rozumiem dlaczego. Wiec mam pytanie czysto praktyczne-teoryczne-i nie wiem co jeszcze (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Chce sobie uzyc Globalnego obiektu dla polaczenia z baza by bylo tylko jedno "wymyslilem" takie 2 sposoby: http://3paste.com/s/392 -> normalny Singleton zawsze zwraca mi taki sam Resource polaczenia. http://3paste.com/s/391 -> jak to cos nazwal Ayeo Singleton z domieszka Registry map tez zwraca 2 takie same Resource Wiec wydaja sie dobre obydwa jednak dreczy mnie pytanie bo @Ayeo powiedzial mi zebym stosowal 1 sposob jednak nie wiem dlaczego 2 wydaje mi sie lepszy moge bez problemow tworzyc globalny obiekt kazdej klasy i go uzywac. Jednak w przypadku 1 sposoby trzeba dziedziczyc zawsze po klasei Singleton w drugim przypadku nie jest to potrzebne stad wydaje mi sie lepsze, jednak chcialbym uslyszec wasze opinie. Oczywiscie czytalem duzo Art'ow na temat Singleton'a i kilka topicow na tym forum np: http://forum.php.pl/index.php?showtopic=22...amp;hl=rejestry http://forum.php.pl/index.php?showtopic=73451&st=0 I inne i jak widac nawet w pierwszym topicu moje rozwiazanie nie jest Singletonem a mieszancem jednak wydaje mi sie lepsze co wy na to?? TEraz drugie pytanie bardziej czysto teoryczne (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) zwiazane ze wzorcem Strategy i Simple Factory. Czy mi sie zdaje lub te 2 wzorce sluza obydwa do implementowania danej czynnosci na wiele sposob sam nie wiedziac napisalem 2 klasy jedna do logowania 2 do rejestracji ktore korzystaja ze wzorca strategy dla bazy Mysql jak i plikow *.txt jednak nie w tym sek. Moje zasadnicze pytanie jest co lepiej uzywac bo tak sie sklada ze sam wpadlem na Strategy jednak czesto widze tez stosowanie SImple Factory. Czekam na ciekawe odpowiedzi. Mam nadzieje ze nie wypowie sie ktos kto sie zna na tym mniej odemnie poniewaz potrzebuje konstruktywnych odpowiedzi. Dzieki i poZdro (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
class XXX extends Singleton wtf? Dziedziczenie nie służy czemuś takiemu... poza tym co to za dziwny pomysł by umożliwić tylko jedno połączenie z bazą danych? A co jak w przyszłości okaże się, że trzeba będzie jakieś dane pobrać z innej bazy danych? To raz.
Dwa: jeżeli Twój "DBDriver" ma ograncizyć się do nakładki na zwykłe mysql_*() to możesz go sobie darować. Dlaczego nie skorzystasz z PDO? Trzy: Jakby lepiej było używać A niż B, to B zostałoby usunięte. A że nie jest to znaczy, że ani A, ani B nie jest lepsze. Za to czasami (w zależności od tego co programista uzna za stosowne) można użyć A lub B. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Cytat class XXX extends Singleton wtf? Dziedziczenie nie służy czemuś takiemu... poza tym co to za dziwny pomysł by umożliwić tylko jedno połączenie z bazą danych? A co jak w przyszłości okaże się, że trzeba będzie jakieś dane pobrać z innej bazy danych? To raz. ROTFL widzialem duzo takich przykladow na php.net jak i w artach. A jak nie to pokaz jak to powinienem zaimplementowac. Cytat Dwa: jeżeli Twój "DBDriver" ma ograncizyć się do nakładki na zwykłe mysql_*() to możesz go sobie darować. Dlaczego nie skorzystasz z PDO? Trzy: Jakby lepiej było używać A niż B, to B zostałoby usunięte. A że nie jest to znaczy, że ani A, ani B nie jest lepsze. Za to czasami (w zależności od tego co programista uzna za stosowne) można użyć A lub B. ROTFL ludzie dla was nie mozna dac zadnego przykladu chodzi o samo dzialanie a nie o to czy klasa ma oblusgiwac 1 baze lub 3 chodzi o sam przyklad i tak nigdzie z tego nie bede korzystal to raz. Dwa ja znam sie tylko na Mysql wiec jak bede pisal cos wiekszego lub w grupie osob ktos inny zajmie sie pisaniem sterownika dla Oracle czy PostrgSQL. Co do Tego Korzystania z A czy B to nie wiem o co chodzi, chodzi ci o to: Cytat Czy mi sie zdaje lub te 2 wzorce sluza obydwa do implementowania danej czynnosci na wiele sposob sam nie wiedziac napisalem 2 klasy jedna do logowania 2 do rejestracji ktore korzystaja ze wzorca strategy dla bazy Mysql jak i plikow *.txt jednak nie w tym sek.
Moje zasadnicze pytanie jest co lepiej uzywac bo tak sie sklada ze sam wpadlem na Strategy jednak czesto widze tez stosowanie SImple Factory. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat ROTFL widzialem duzo takich przykladow na php.net jak i w artach. No i co z tego?Cytat A jak nie to pokaz jak to powinienem zaimplementowac. Poprzez zwykłe:Ewentualnie możesz dodać implementacje jakiegoś interfaceu określającego, że dana klasa implementuje singleton. Cytat ROTFL ludzie dla was nie mozna dac zadnego przykladu Bo przykład to jeszcze musi być dobry.Cytat Dwa ja znam sie tylko na Mysql wiec jak bede pisal cos wiekszego lub w grupie osob ktos inny zajmie sie pisaniem sterownika dla Oracle czy PostrgSQL. Nie chodzi o to byś odrazu pisał sterowaniki do innych silników. Chodzi o to byś dał taką możliwość w ogóle.Cytat Co do Tego Korzystania z A czy B to nie wiem o co chodzi, chodzi ci o to: Cytat Moje zasadnicze pytanie jest co lepiej uzywac
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Jaka jest roznica pomiedzy moim a twoim kodem?? Cytat Ewentualnie możesz dodać implementacje jakiegoś interfaceu określającego, że dana klasa implementuje singleton. moze jasniej?? Cytat Bo przykład to jeszcze musi być dobry. A co w nim jest zlego chyba ze go zle zinterpretowales. Cytat Nie chodzi o to byś odrazu pisał sterowaniki do innych silników. Chodzi o to byś dał taką możliwość w ogóle. Wydaje mi sie 2 przyklad ktory podalem daje taka mozliwsco wystarczy podac dana klase jako argument tak samo z pierwszym wystarczy by klasa dziedziczyla po Singletonie. Koncowki jak zwykle nie rozumiem. P.S co widzisz z zlego w 1 i 2 przykladzie prawie kazdy dziedziczy po Singletonie wiec jak ty to robisz ze ci nie podoba?? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jaka jest roznica pomiedzy moim a twoim kodem?? Taka, że ja zaimplementowałem singleton w jakiejś konkretnej klasie, a Ty utworzyłeś całą klasę, po której później dziedziczysz tylko po to by mieć dostęp do singletonu.Cytat moze jasniej?? Jeżeli będziesz potrzebować takiej funkcjonalności to możesz każdej klasie implementującej singleton przypisać (zaimplementować) interface singleton:Daje to później możliwość łatej identyfikacji tego, że dana klasa korzysta z tego wzorca. Możesz, nie musisz jak napisałem - zależy Ci będzie Ci to w ogóle potrzebne. Cytat A co w nim jest zlego chyba ze go zle zinterpretowales. Jest to złego, że napisałeś:Cytat Wiec mam pytanie czysto praktyczne-teoryczne-i nie wiem co jeszcze Następnie ja skrytykowałem przykład, a Ty się oburzyłeś. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Cytat Taka, że ja zaimplementowałem singleton w jakiejś konkretnej klasie, a Ty utworzyłeś całą klasę, po której później dziedziczysz tylko po to by mieć dostęp do singletonu. No tak ale jesli uzyje dziedziczenie to za kazdym razem jak chce uzyc Singletona to nie musze pisac tego samego kodu tylko dziedzicze sobie i tyle. W sumie lepiej juz by bylo zastosowac interfejsy do tego bo co bedzie jak dana klasa ma dziedziczy po 2 klasach LIPA. Jednak 2 rozwiazanie -> <a href="http://3paste.com/s/391" target="_blank">http://3paste.com/s/391 zalarwia cala sprawe nie musze ani dziedziczyc ani uzywac interfejson i na dodatek dziala to jak NORMALNY Singleton bo obietk jest globalny.</a> Cytat Następnie ja skrytykowałem przykład, a Ty się oburzyłeś Ja sie nie oburzylem nie ma o co bo wiem ze przyklad jest dobry (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Ten post edytował marcio 14.05.2009, 19:05:11 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 17:39 |