Описание тега flyweight-pattern

Легковес - это шаблон проектирования, который минимизирует использование памяти объектом, разделяя как можно больше его данных с другими подобными объектами. Это один из шаблонов структурного проектирования "Банды четырех". При использовании этого тега для сложных вопросов реализации - укажите язык кода, на котором написана реализация.

Легковес - это шаблон проектирования, который сводит к минимуму использование памяти объектом, разделяя как можно больше его данных с другими подобными объектами. Это способ использовать объекты в больших количествах, когда простое повторяющееся представление потребовало бы неприемлемого объема памяти. Часто некоторые части состояния объекта могут быть общими, и обычно они хранятся во внешних структурах данных и временно передаются объектам-легковесам, когда они используются.

Классический пример использования шаблона Flyweight - это структуры данных для графического представления символов в текстовом процессоре. Может быть желательно иметь для каждого символа в документе глифовый объект, содержащий его контур шрифта, метрики шрифта и другие данные форматирования, но это будет составлять сотни или тысячи байтов для каждого символа. Вместо этого для каждого символа может быть ссылка на объект глифа Fyweight, общий для каждого экземпляра одного и того же символа в документе; только позиция каждого символа (в документе и / или на странице) должна храниться внутри.

Легковес - это один из структурных шаблонов проектирования"Банды четырех", впервые опубликованный в книге Гаммы и др. "Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения".

См. Википедию для получения дополнительной информации.