Na łamach bloga przytoczę teraz pewną powtórzeniową dawkę wiedzy dla wszystkich absolwentów kursu wzorców projektowych na swoich studiach informatycznych (i nie tylko;). Ponieważ szczegółowych opisów wzorców (i antywzorców) projektowych w sieci jest dużo skupię się tutaj tylko i wyłącznie na kilku najistotniejszych sprawach – mianowicie na celu wprowadzenia wzorca, opisie przypadków, w którym go używamy, konsekwencji jego zastosowania oraz przybliżającego sprawę diagramu UML. Dzisiejszy odcinek sponsoruje…
FLYWEIGHT, czyli waga musza
Cel:
Użycie współdzielenia do efektywnego wsparcia dużej liczby drobnoziarnistych obiektów.
Stosowalność:
Używamy go, gdy wszystkie poniższe warunki są spełnione:
-Aplikacja używa dużej liczby obiektów
- Koszty składowania są wysokie z powodu znacznej liczebności obiektów.
- Większość stanu obiektu może być przeniesiona na zewnątrz.
-Wiele grup obiektów może być zastąpionych przez stosunkowo niewiele współdzielonych obiektów po usunięciu zewnętrznego stanu.
-Aplikacja nie zależy od tożsamości obiektów.
Konsekwencje użycia:
Oszczędność pamięci – tym większa im:
–większa redukcja liczby instancji wynikająca z ich współdzielenia;
–mniej stanu wewnętrznego;
–więcej stanu zewnętrznego można wyliczyć (a nie przechowywać).
Przykłady użycia: wydzielenie chemikaliów o stałych danych, wydzielenie obiektów reprezentujących znaki drukarskie
Diagram:

