Design patterns are general solutions to problems that frequently occur in software development. The following are templates of standardized best practices in structuring and designing code, as well as examples of common contexts in which these design patterns would be appropriate.
Structural design patterns focus on the composition of classes and objects to create interfaces and achieve greater functionality.