Wzorce projektowe: Flyweight

Flyweight jest strukturalnym wzorcem projektowym, którego zadaniem jest zmniejszenie ilości instancji klas w aplikacji. Jest bardzo zbliżony do Singleton’a i często Singleton jest wykorzystywany we wzorcu Flyweight. Czasami zdaża się, że potrzebujemy na prawdę wielkiej ilości małych obiektów. Np. rysując zawartość folderu, możemy stworzyć obiekt katalogu lub pliku dla każdego obecnego w systemie. Może to doprowadzić do niepotrzebnego zuzycia zasobów. Te obiekty tak na prawdę nie różnią się wiele, ikonka taka sama tylko nazwa inna. W takiej sytuacji wykorzystuje się wzorzec Flywieght. Jego zadaniem jest stworzenie jednego obiektu, którego dane są delegowane do innego miejsca. Zamiast tworzyć kilkaset małych obiektów, tworzy się jeden, a jako paramter podaje się to co jest zmienne. Tworzy się jedną instancję dla rodzaju obiektu. Więc np, folder i folder zaznaczony (który ma inną ikonkę) to dwa różne obiekty. […]