Wzorzec projektowy pyłek należy do wzorców strukturalnych. Wzorzec ten umożliwia wydzielenie części wspólnej dla wielu obiektów i przechowywanie jej w jednym oddzielnym obiekcie, do którego obiekt główny odwołuje się poprzez wskaźnik. Ten wzorzec można wykorzystać w grze komputerowej, gdzie obiekty tej samej klasy mają przypisaną taką samą teksturę. Tekstury zawsze ważą sporo i zajmują sporo miejsca w pamięci więc aby zapobiec niepotrzebnemu ich powielaniu tworzy się specjalną klasę, gdzie przechowywane są obiekty tekstur. Dany obiekt w grze np. czołg określonego typu odwołuje się do znajdującego się pod wskazanym adresem obiektu tekstury. W ten sposób mogę utworzyć dowolną liczbę czołgów danego typu, dla których wykorzystywana będzie jedna i ta sama tekstura.
Przykładowy diagram UML wzorca projektowego pyłek
Poniższy diagram pokazuje zlepek wykorzystania trzech różnych wzorców projektowych:
wzorzec projektowy pyłek - widoczny w klasie Textures
Obiekt klasy Textures jest dostępny globalnie z poziomu metody statycznej getTextures i globalnie udostępnia możliwość dodawania nowych tekstur, które z kolei dodawane są przez obiekty klas M1A1_Abrams_tank i T34_tank.
Przykładowa implementacja wzorca projektowego pyłek w C++
Konstruktor textures
Created new Texture from path: tank_textures/M1A1_Abrams_tank.gif
Texture "M1A1 Abrams tank" already exist so I return existing texture!
Created new Texture from path: tank_textures/T34_tank.gif