![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 9.08.2004 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Wiekszość ludzi piszacych tutaj rozumie chyba jak działa Singleton. Do dzis myslalem ze tez to rozumiem. Czy moze mi ktos wytlumaczyc dlaczego ten kod nizej działa? Mam kod index.php
DB.class.php:
I to działa!! Pomimo tego ze konstuktor DB jest prywatny!! Jezeli nie dziedzicze po mysqli wyskakuje blad (reakcja prawidlowa). testuje na php Version 5.1.2-1 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Ideą singletona jest to, że w zakresie całej aplikacji możesz miec tylko jedną instancję klasy. Oczywiście zawsze można to obejś, ale pytanie po co? Singleton to rozwiązanie, które zastępuje nam zmienne globalne (przynajmniej w większości przypadków). Tzw bezpieczeństwo Singletona nie może by rozumiane w takim sensie jak bezpieczeństwo danych etc. To raczej bezpieczeństwo dla programisty, który ma miec pewnośc, że obiekt, który posiada jest obiektem unikalnym i jedynym w całej aplikacji (w konkretnym procesie). Dlatego nie wywołujemy poprzez klucz 'new', tylko specjalną metodę getInstance(), która sprawdza, czy istnieje już jakiś obiekt danej klasy i jeśli nie, to próbuje go wywołac.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 07:49 |