Może posłużyć do opisania relacji jeden-do-wielu. Composit pozwala dodatkowo umieszczenie listy z obiektami w tym samym obiekcie. W poniższym przykładzie mamy interfejs Shape, który posiada klasy potomne Circle i Shape. CompositSape jest „kompozytem”, która przechowuje listę wielu instancji interfejsu Shape. Metoda Draw CompositeShape deleguje odpowiednie wywołanie do wszystkich obiektów składowych.

public interface Shape { void Draw(); } public class Circle : Shape { public void Draw() { } } public class Square : Shape { public void Draw() { } } public class CompositeShape : Shape { private List<Shape> itsShapes = new List<Shape>(); public void Add(Shape s) { itsShapes.Add(s); } public void Draw() { foreach (Shape shape in itsShapes) shape.Draw(); } }