![]() |
Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przez te święta człowiek rachube stracił i zapomniał o PRO.
No to może coś o wzorcach projektowych? Co to jest, na co to komu, jakie korzyści przyniesie stosowanie, jakie mamy wzorce (opis). |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 1 Dołączył: 12.01.2009 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@nasty
Pozwole sobie odpisac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Smiem poddac w watpliwosc twoje zrozumienie singletonu. Singleton nie definuje ci jak ma przebiegac workflow obiektu. Chodzi tu o nic innego, jak tylko o mozliwosc powolania jednej instrancji. Sesja jest z definicji bytem takim jak np u czlowieka swiadomosc. Mozesz miec tylko jedna i nie mozesz miec drugiej chocby byla pusta (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Wiec nie mozesz nawet pozwolic na utworzenie obiektu, bo jest to poprostu nie zgodne z logika. Sa pewne byty, ktore nie moga byc traktowane jak np myszka od komputera, ktorej "objekt" w fabryce myszek jest "tworzony" wielokrotnie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) A wracajac do twojego workflow, to co stoi na przeszkodzie dac dostep do metody 'getInstance()' tylko raz? Mam na mysli, ze jesli obiekt jest juz powolany, to getInstance zeby zwracala null (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) i nikt nie bedzie wtedy traktowal jej jako global i zachowasz swoj magiczny workflow, ktory prawdopodobnie jest spoko i ma duzo sensu w sobie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) btw. nie jestem fanem traktowania singletonu jako ominiecia zmiennych globalnych (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 634 Pomógł: 14 Dołączył: 27.05.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Drogi @qba_rox, zauważ jednak, że takie uniemożliwianie wykonania getInstance() więcej niż jeden raz, jest już takjakby hackiem singletona, a to samo masz w obiekcie kontekstowym, on jest przekazywany tylko raz.
Załóżmy taką sytułację, że w pewnym momencie chciałbyś odtworzyć pewną sesję - np. masz aplikację z opcją "zapisz sesję" i po ponownym uruchomieniu, chciałbyś, żeby wszystko było jak po zamknięciu. Singleton Ci na to nie pozwoli, gdyż możesz tylko uzyskać obiekt który jest tworzony w ukrytym konstruktorze, nie możesz odtworzyć stan zachowanego (załóżmy, że zserializowanego) obiektu do tej ukrytej instancji, zachowanej w Singletonie. A z obiektem kontekstowym można takie coś zrobić. A odnośnie świadomości... wydaję mi się, że za bardzo puściłeś wodzę fantazji przyrównując ją do sesji, bo jak wspomniałem, sesję można zachować, nie używać jej a następnie odtworzyć a świadomość nie, no chyba, że mówimy tu o bardzo zakrapianej alkoholem imprezie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 15:10 |