> For the complete documentation index, see [llms.txt](https://blog.sunilgudivada.dev/notebook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blog.sunilgudivada.dev/notebook/design-patterns/introduction.md).

# Introduction

**Design patterns** are typical solutions to commonly occurring problems in software design. They are like pre-made blueprints that you can customize to solve a recurring design problem in your code.

* Patterns are not invented, they are *discovered*.
* Patterns show you how to build a system with good OO design qualities
* Patterns are proven Object-oriented Experience
* Patterns don't give you the code, they give you general solutions to design problems. You apply them to your specific application.
* Patterns Provide a shared language that can maximize the value of your communication with other developers.
