Design Patterns

A design pattern is an attempt to fulfill reoccuring design requirements by reusing solutions which have been solved time and time again. In fact, one could almost look upon design patterns as a standard arsenal that every programmer should have in his skill set.

Although the concept is not exactly new in it basic form - reusing stable code has been the skill of many programmer, design patterns attempt to essentially standardize the pratice for common challenges.

Design patterns are broken down into groups according to the type of general problem they solve.

 

Classes of Patterns

Pattern Summary Examples
Behavioral Patterns allow communication between objects state, command
Creational Patterns object creation singleton, class factories
Concurrency Patterns solve concurrency issues, locking thread pool, io
Fundamental Patterns patterns general in nature interface, delegate
Structural Patterns create relationships between objects bridge, proxy