In 1994, four software gurus produced a book entitled Design Patterns: Elements of Object-Oriented Software, which introduced the world to formalized design patterns. A design pattern is a proven and tested solution to a particular problem domain and with a mastery of a tool chest of design patterns you will be equipped to analyze a specific problem to determine if it can be solved using a design pattern. Because design patterns proved to be so helpful to software developers, the four authors of the aforementioned book, Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides, affectionately became known as the “Gang of Four” and their book became an instant classic.
The gang of four’s book defined 23 design patterns, categorized into three groups: creational patterns, structural patterns, and behavioral patterns.
Read more about these design patterns at InformIT which describes scenarios in which it makes sense to use them, and provide an example in Java that you can use as a foundation for implementing the pattern in your own applications.