# Introduction ````{admonition} Overview :class: overview Questions: - What are Design Patterns? Objectives: - A brief introduction to the types of Design Patterns. ```` Design patterns are solutions to commonly found problems in software design. They are tested paradigms for how to solve a recurring problem. Patterns allow to speed up software development and provide a uniform communication mechanism among developers. There are various types of patterns: 1) Creational: they deal with object or class creation. They help make a system independent of how its objects are created, composed and represented. 2) Structural: they are about class or object composition. They define ways to compose objects to form larger structures and obtain new functionality. 3) Behavioral: they are concerned with the assignment of responsibilities between objects and the communicaton between objects or classes. ````{admonition} Key Points :class: key - Design patterns are solutions to common problems in software design. ````