Software design patterns

The software design patterns is a general solution to a common problem in software design, it is a general template that can be used to solve common problems.
There are 3 types of design patterns: structure (composition are about classes and objects), behavior (communication object classes) and creation (on request)

 

Image result for software design patterns