This is meant to be used as a quick tutorial on design patterns. A pattern addresses a recurring design problem that arises in specific design situations, and presents a solition to it.
Patterns document exsiting, well-proven design experience.
Patterns identify and specify abstractions that are above the level of single classes and instances, or of components. Patterns provide a common vocabulary and understanding for design principles. Patterns are a means of documenting software architechtures. Patterns support the construction of software with define properties. Patterns help you bukld comples anc heterogeneous software architectures.