Design patterns are recurring solutions to common problems in software design.
It is recommend to acknowledge the following principles before starting with design patterns. Design patterns and OOP in general won’t make sense without strictly following these principles.
According to the Gang of Four book we can categorize design patterns into three main categories:
Other design patterns that are important to know for complex applications: