1. Обзор
В этой статье мы рассмотрим шаблон проектирования легковеса. Этот шаблон используется для уменьшения объема памяти. Это также может повысить производительность в приложениях, где создание объектов требует больших затрат.
Проще говоря, шаблон легковеса основан на фабрике, которая перерабатывает созданные объекты, сохраняя их после создания. Каждый раз, когда запрашивается объект, фабрика ищет объект, чтобы проверить, не был ли он уже создан. Если да, то возвращается существующий объект, в противном случае создается, сохраняется и затем возвращается новый.
Состояние легковесного объекта состоит из инвариантного компонента, который используется совместно с другими подобными объектами ( internal ) и вариантного компонента, которым может манипулировать клиентский код ( extrinsic ).
Очень важно, чтобы легковесные объекты были неизменяемыми: любая операция над состоянием должна выполняться фабрикой.
2. Реализация