Zpo-7-wyk-Slajd11

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Flyweight: struktura

Flyweight: struktura


Obiektem współdzielonym jest Flyweight, który posiada dwa rodzaje stanu: wewnętrzny, który jest współdzielony przez wszystkie instancje tej klasy, oraz zewnętrzny, który jest specyficzny dla danej instancji. Stan wewnętrzny nie musi być modyfikowany, zatem nie ma konieczności bezpośredniego dostępu do niego. Stan zewnętrzny natomiast musi być dostarczony z zewnątrz w momencie, gdy klient zażąda użycia obiektu Flyweight w konkretnym kontekście.

Zarządzaniem obiektami Flyweight zajmuje się obiekt Flyweight Factory, która udostępnia klientowi metodę do pobierania instancji Flyweight. Na podstawie parametrów przekazanych tej metodzie fabryka może ustalić, jaki stan zewnętrzny odpowiada żądanemu obiektowi, i dostarcza go. Fabryka zarządza także pulą generycznych, pozbawionych stanu obiektów Flyweight. W momencie żądania dostarczenia obiektu fabryka pobiera obiekt z puli, konfiguruje go odpowiednim stanem zewnętrznym, i zwraca klientowi gotowy do użycia obiekt.

Wzorzec przewiduje też specjalną podklasę UnsharedConcreteFlyweight do reprezentowania tych obiektów, które celowo nie powinny być współdzielone. Jej użycie pozwala na zachowanie struktury wzorca i jego funkcjonalności z punktu widzenia klienta.


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