Расширение интерфейса Flyweight дает возможность отделить клиента от реализации шаблона flyweight.
Пример:
Существует шаблон Flyweight, реализованный для 'Glyph' -s.Согласно UML шаблона, «Glyph» представляет базовый класс «Flyweight» или интерфейс.«Клиент» работает с набором глифов.FlyweightFactory (здесь GlyphFactory) может создавать глифы (обычно экземпляры объекта SharedFlyWeightGlyph), используя шаблон flyweight.
Клиент, вероятно, сохраняет текст как набор глифов.
Теперь скажем, рядом снормальные глифы, вы хотите использовать несколько пользовательских глифов, которые не могут быть созданы FlyWeightFactory.Расширяя интерфейс Glyph (который является UnsharedFlyweight согласно UML-диаграмме шаблона), вы получаете возможность использовать собственные глифы, однако в этих случаях выигрыш в производительности шаблона flyweight не может быть использован.