Categories of design patterns
Design patterns can be categorized in different ways according to the criteria chosen. A commonly accepted way of categorizing is by using the criterion of purpose of the pattern. In other words, we ask the pattern what class of problems the pattern solves.
This kind of categorization gives us three neat varieties of pattern classes. These are as follows:
Creational: These patterns solve the problems associated with object creation and initialization. These are problems that occur the earliest in the life cycle of problem solving with objects and classes. Take a look at the following examples:
The Factory pattern: The "How do I make sure I can create related class instances in a repeatable and predictable fashion?" question is solved by the Factory class of patterns
The Prototype pattern: The "What is a smart approach to instantiate an object, and then create hundreds of similar objects by just copying across this one object ?" question is solved by the Prototype...