Design patterns concepts

This was the start of my journey in C#; it was delightful to code with standard design patterns and make scalable software.  

Design patterns are solutions to software design problems you find again and again in real-world application development. Patterns are about reusable designs and interactions of objects.

Before diving into this article, it is highly recommended to look at Unified Modeling Language cheat sheet.