– Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system . Design Patterns establishes solutions to common problems which helps to keep code maintainable, extensible and loosely coupled.