Design Patterns Introduction

What are design patterns ?

Design patterns are typical solutions to commonly occurring problems in software design.

They are like pre-made blueprints that we can customize to solve a recurring design problem in our code.

We can’t just find a pattern and copy it into our program, the way we can with off-the-shelf functions or libraries.

The pattern is not a specific piece of code, but a general concept for solving a particular problem.

We can follow the pattern details and implement a solution that suits the realities of our own program.

What does the pattern consist of ?

Most patterns are described very formally so people can reproduce them in many contexts.

Here are the sections that are usually present in a pattern description:

Some pattern catalogs list other useful details, such as applicability of the pattern, implementation steps and relations with other patterns.

Why to learn patterns ?
Criticism of Patterns

Patterns Classification:

All patterns can be categorized by their intent, or purpose. There are 3 main groups of patterns: