Zpo-5-wyk-Slajd13: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 1: Linia 1:
==Eksperymentalna ocena kosztu refaktoryzacji==
==Singleton: struktura i uczestnicy==


[[Image:zpo-5-wyk-Slajd13.PNG|Eksperymentalna ocena kosztu refaktoryzacji]]
[[Image:zpo-5-wyk-Slajd13.PNG|Singleton: struktura i uczestnicy]]




W celu określenia wpływu refaktoryzacji na koszt produkcji oprogramowania (rozumianego jako czas jego tworzenia), przeprowadzono małej skali eksperyment. Dwie grupy osób, pracujących w nieco odmienny sposób, tworzyło ten sam system. Każdy pracował indywidualnie zgodnie z jednym z dwóch modeli: AdHoc oraz Testy & Refaktoryzacja. System był budowany w sposób przyrostowy: składało się na niego 4 przyrosty, z czego przyrost zerowy był realizowany poza warunkami kontrolowanymi i służył stworzeniu szkieletu aplikacji. Następnie, w odstępach tygodniowych, implementowane były kolejne funkcje: 2 w przyroście I, 2 w przyroście II oraz 1 w przyroście III.
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: 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.


<< Poprzedni slajd | Spis treści | Następny slajd >>