УЧАСНИКИ
Flyweight - Пристосуванець:
Надає інтерфейс, за допомогою якого розподілені об'єкти (пристосуванці) можуть
підключати зовнішній стан і впливати на нього.
Concrete Flyweight - розподілений конкретний пристосуванець:
Клас розподіленого об'єкта. Реалізує інтерфейс класу Flyweight і додає при необхідності внутрішній стан.
Unshared Concrete Flyweight – Нерозподілений конкретний пристосуванець:
Клас нерозподіленого об'єкта. Реалізує інтерфейс класу Flyweight і додає при необхідності зовнішній стан.
Flyweight Factory - Фабрика пристосуванців:
Створює розподілені і нерозподілені об'єкти. Коли клієнт запитує розділенийоб'єкт, фабрика шукає цей об'єкт в «пулі пристосуванців» і якщо знаходить, то повертає посилання на нього, інакше створює новий об'єкт, зберігає його в «пулі пристосуванців» і повертає посилання на
створений об'єкт. Нерозподілені об'єкти кожного разу створюються заново.
Client - Клієнт:
Працює з розподіленими і нерозподіленими об'єктами. Формує і може зберігати зовнішнє стан розподілених об'єктів.