Do systému je třeba zabudovat hierarchickou strukturu, která se skládá ze dvou typů objektu: primitivní (leaf) a složené (composite), které obsahují další vnořené objekty. Oba typy objektů mají společné rozhraní, ale každý z nich implementuje požadované funkce jinak. Oba typy jsou tedy vzájemně zaměnitelné.
Příklady: Adresáře, ve kterých mohou být soubory i další adresáře. Výrobky, které se mohou skládat z materiálu i z dalších výrobků (polotovarů). Menu, jehož položky mohou být příkazy i další menu.
Každý typ objektu bude reprezentován jednou třídou. Jedna třída (Leaf) bude představovat primitivní objekt, druhá třída (Composite) bude představovat objekt složený. Obě třídy budou implementovat společné rozhraní (Component). Třída reprezentující složený objekt bude obsahovat kód, který využije vnořených objektů při realizaci společné funkcionality. Může jimi například procházet či požadavek přeposlat na každý z nich.
diagram tříd
kód v jazyce Java - Zobrazit
kód v jazyce Java - Zobrazit
kód v jazyce Java - Zobrazit