I would like to share an excellent resource from IBM’s Developers network on Design patterns that I stumbled upon while doing my online research. Design patterns are one of the best ways to share design ideas. They give software architects and designers a tool, or a language, to capture their experiences by solving common recurring problems in a methodical way. In this two-part series you explore ways to use design patterns to solve your everyday design problems. This tutorial uses a railway reservation system case study to illustrate the design problems that can arise while architecting a system. Take this tutorial to learn how to use design patterns to solve problems and improve your own designs.
Patterns-based design and development for architects:
PART 1: Using design patterns (Got Patterns?)