Wzorzec ten można formalnie zrealizować za pomocą trzech głównych elementów: elementu abstrakcyjnego Flyweight definiującego operacje służące do przyjmowania i odtwarzania stanu zewnętrznego obiektu, opisywanego przez klasę UnsharedConcreteFlyweight obiektu tworzonego na bazie klasy ConcreteFlyweight przechowującego stan wewnętrzny (współdzielony) obiektu, który dodatkowo jest niezależny od kontekstu wywołania fabryki FlyweightFactory, której zadaniem jest kreowanie i składowanie obiektów realizujących interfejs Flyweight
Konsekwencje stosowania Korzyści wynikające z zastosowania tego wzorca to: ograniczenie liczby obiektów używanych w trakcie wykonywania programu, a co za tym idzie zaoszczędzenie pamięci aplikacji – tym większe, im więcej obiektów jest współdzielonych składowanie danych stanu współdzielonych obiektów odbywa się w jednej lokalizacji. Wady wzorca Pyłek to: zmniejszenie wydajności aplikacji utrata przez pojedyncze, logiczne egzemplarze klasy możliwości posiadania zachowań niezależnych od pozostałych egzemplarzy.