As requested I'm starting a series of thread on design pattern.
First:
- An algorithm is a step-by-step recipe for performing some task
- A design pattern is like a blueprint: a structured collection of objects, associations, and actions to accomplish some goal
A design pattern is a general repeatable solution to a commonly occurring problem in software design.
It isn't a finished design that can be transformed directly into code but a description or template for how to solve a problem in many different situations.
- is Abstract and Flexible
- controls Structure
- a solution to a common but generic problem.
- a general solution to a general problem.
- often have to be implemented each time it is used.
The most popular is the following:
- Creational
- Structural
- Behavioral
- Concurrency
- Architectural
I'll review each category and most common patterns in future threads!