![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 17 Dołączył: 23.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Na tyle ile możliwości ma PHP w tej dziedzinie napisałem własną wersję klasy Singleton dla wzorca Singletonu, zamieszczając ją tutaj na forum chciałbym uzyskać troche opinii i propozycji odnośnie mojego rozwiązania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Gdzieś czytałem, że nie zaleca się rozpoczynać nazw metod od dwóch podkreślników, gdyż koliduje to z ogólnie przyjętym schematem nazewnictwa metod magicznych oraz konstruktora i destruktora w PHP. Jeśli też tak uważacie, proszę o propozycję ładnej nazwy angielskiej tejże metody (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Przykład użycia:
Pozdrawiam Ten post edytował Ociu 8.06.2008, 15:34:00
Powód edycji: poprawiłem bbCode (ociu)
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 17 Dołączył: 23.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie, to czekanie jest najgorsze, a do tej pory trzeba sobie jakoś radzić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Czemu __initialize? Generalnie może zdarzyć się tak, że mimo to iż dziedziczę po wzorcu Singleton (może nie koniecznie bezpośrednio, ale w którejś podklasie z kolei) może się zdarzyć tak, że przypadkowo przeładuje konstruktor na publiczny, a jest to możliwe. Szkoda, że nie ma w PHP wymuszenia używanego dostępu do zmiennej bądź klasy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten problem postanowiłem więc rozwiązać w taki sposób jak widać. Innym ciekawym rozwiązaniem byłoby zastosowanie AspectPHP, gdyby to istniejące projekty byłyby zadowalająco dobrze napisane, a tak to trzeba się męczyć. Dzięki AspectPHP taki Singleton możnaby uzyskać automatycznie. Dość interesującym projektem jest wtyczka do Eclipse - APDT, która bazuje trochę na PHPAspect (chyba napisana przez tych samych autorów) lecz PHPAspect jest napisany w PHP i niestety nie grzeszy wydajnością. A wracając do APDT, jest to projekt, który jeszcze nie wyszedł po za repozytoria SVN, jednak zapowiada się wspaniale (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 01:14 |