Catalog of Design Patterns

Creational

These patterns provide flexible ways of creating objects, which help to minimize dependencies between classes and maximize code reuse.

Structural

These patterns help you to structure your classes efficiently, making relations between classes minimal and straightforward.

Behavioral

These patterns are responsible for the efficient and safe distribution of behaviors among the program's objects.