Zpo-5-wyk-Slajd13: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Singleton: struktura i uczestnicy== | ||
[[Image:zpo-5-wyk-Slajd13.PNG| | [[Image:zpo-5-wyk-Slajd13.PNG|Singleton: struktura i uczestnicy]] | ||
Singleton składa się z jednej klasy, która zarządza swoją własną jedyną instancją. Instancja jest przechowywana w postaci prywatnego pola statycznego, natomiast zarządzaniem nią zajmuje się publiczna metoda statyczna o nazwie ''getInstance'' ''().'' Postępuje ona według następującego algorytmu: jeżeli pole statyczne przechowujące instancję klasy ma wartość ''null'' (czyli instancja dotąd nie została utworzona), wówczas instancja taka jest tworzona i zapamiętywana w tym polu. Dzięki temu, niezależnie od tego, który raz wywoływana jest metoda, zawsze zwraca ona utworzoną i jedyną instancję klasy. | |||
Aby uniemożliwić klientom samodzielne tworzenie instancji z pominięciem metody statycznej, klasa Singleton uniemożliwia dostęp do konstruktora z zewnątrz, zwykle czyniąc go prywatnym lub chronionym. | |||
[[zpo-5-wyk-Slajd12 | << Poprzedni slajd]] | [[zpo-5-wyk-toc|Spis treści ]] | [[zpo-5-wyk-Slajd14 | Następny slajd >>]] | [[zpo-5-wyk-Slajd12 | << Poprzedni slajd]] | [[zpo-5-wyk-toc|Spis treści ]] | [[zpo-5-wyk-Slajd14 | Następny slajd >>]] |
Aktualna wersja na dzień 11:02, 17 paź 2006
Singleton: struktura i uczestnicy
Singleton składa się z jednej klasy, która zarządza swoją własną jedyną instancją. Instancja jest przechowywana w postaci prywatnego pola statycznego, natomiast zarządzaniem nią zajmuje się publiczna metoda statyczna o nazwie getInstance (). Postępuje ona według następującego algorytmu: jeżeli pole statyczne przechowujące instancję klasy ma wartość null (czyli instancja dotąd nie została utworzona), wówczas instancja taka jest tworzona i zapamiętywana w tym polu. Dzięki temu, niezależnie od tego, który raz wywoływana jest metoda, zawsze zwraca ona utworzoną i jedyną instancję klasy.
Aby uniemożliwić klientom samodzielne tworzenie instancji z pominięciem metody statycznej, klasa Singleton uniemożliwia dostęp do konstruktora z zewnątrz, zwykle czyniąc go prywatnym lub chronionym.