This repository contains a list of common Design patterns and their c++ implementation.
We will also briefly discuss the situations that calls for those designs as well as the benefits/cons you can expect from them.
Nothing new under the sun, this repository is highly inspirated by the book "Design patterns".
Design patterns divided into three categories as below :
Those designs are involved in the objects creation mechanisms.
They abstract the instantiation process in a way that is the most suitable for the situation and therefore increase the flexibility of the existing code.
Structural patterns are involved in classes and objects compositions to form larger structures.
They allow us to compose interfaces or implementations in order to obtain larger structures that are still flexible.
They are also very usefull to achieve new functionalities using objects compositions.
Behavioral patterns are concerned with algorithms and assignement of responsabilities between objects.
On class, they use inheritance to distribute behaviour between classes while they use object composition to perform tasks that no single object can carry by itself.