В данной статье мы рассматриваем структурный шаблон проектирования "Flyweight" и его реализацию на .NET
Назначение:
Паттерн Приспособленец (Flyweight) - шаблон проектирования, который позволяет использовать разделяемые объекты сразу в нескольких контекстах. Данный паттерн используется преимущественно для оптимизации работы с памятью.
Приспособленец это экземпляр объекта, который выдает себя за группу самостоятельных экземпляров.
Когда использовать Flyweight?
- в приложении используется большое число очень схожих экземпляров заданного класса;
- (и) часть состояния объекта является контекстной и может быть легко вынесена во внешние структуры;
- (и) после вынесения части состояния, все экземпляры становятся одинаковыми и это дает возможность заменить их одним;
- (и) приложение не проверяет идентичность объектов, т.к. в этом случае все якобы самостоятельные экземпляры являются одним объектом.