Zpo-11-wyk-Slajd6
Flyweight: cel
Flyweight jest wzorcem opisującym zasadę współdzielenia obiektów w sytuacjach, gdy są one potrzebne niejednocześnie i tylko przez pewien okres czasu. Flyweight różni się od wzorca Pool of Objects, ponieważ pozwala współdzielić obiekty stanowe, których dane zależą od kontekstu. Wykorzystanie wzorca ma na celu przede wszystkim podniesienie wydajności aplikacji przez ograniczenie liczby obiektów oraz wydzielenie z nich stanu zewnętrznego (specyficznego dla każdej instancji i zależnego od kontekstu) oraz stanu wewnętrznego (współdzielonego przez wszystkie instancje).
Na przykład litery w procesorze tekstu są reprezentowane przez obiekty klasy Litera, w której stanem wewnętrznym jest kod znaku, a zewnętrznym – krój litery, jej wielkość, dekoracje etc.