Design Patterns provide a common language and framework to the task of programming. Design patterns are well tested solutions to several programming problems. The whole idea is that someone else has already faced the problem one typically faces while doing programming and has come up with an optimal solution that implements all kinds of good design. These patterns are typically interface-based patterns which could be reused in a variety of contexts. Usage of these patterns results into code reliability, modularity, agility and extensibility via decoupling etc. The following is list of patterns and principles (including sample working code) which I have subscribed to all these years I have been involved in software development initiatives (poducts & projects).
There are several other well known categories of programming design patterns, these are all highly recommended as part of any large scale software development process. The following is a list of few notable & well proven patterns (including sample working code):