🎉 Hooray! After 3 years of work, I've finally released the ebook on design patterns! Check it out »

Design Patterns

Design patterns are typical solutions to common problems in software design. Each pattern is like a blueprint that you can customize to solve a particular design problem in your code.

Benefits of patterns

Patterns are a toolkit of solutions to common problems in software design. They define a common language that helps your team communicate more efficiently.


Design patterns differ by their complexity, level of detail and scale of applicability. In addition, they can be categorized by their intent and divided into three groups.

Catalog of patterns

List of 22 classic design patterns, grouped by their intent.

History of patterns

Who invented patterns and when? Can you use patterns outside software development? How do you do that?

Criticism of patterns

Are patterns as good as advertised? Is it always possible to use them? Can patterns sometimes be harmful?

Dive Into Design Patterns

Check out our ebook on design patterns and principles. It’s available in PDF/ePUB/MOBI formats and includes an archive with code examples.