What is a pattern? (in software engineering world)
A predefined solution for a problem for the given context.
Key words in the above definition is problem, solution and the context.
What are the different categories of the patterns ? (in software engineering)
- Analysis patterns
- Design patterns
- Architectural patterns
- Technology patterns
- Integration patterns
Why do we use the patterns?
Objective of patterns is to enhance
- Reusabililty
- Repeatability
in return will fetch
- Cost efficiency
- Agility (time to market)
Where the pattern concepts started in general ?
The pattern concept has been in use for thousands of years. In the building architecture and design, we have been using the patterns quite extensively. Ancient buildings like pyramids, roman collegium and lot more used the patterns in the implementation. For instance, the pillars used in ancient temples built in Thailand, India and etc are patterns. They did not design the pillars every time. The pillars are to hold the load of the building. We can notice the reusability and repeatability of the pillars in multiple places in those ancient building architecture which in returned improved the ancients to be effective and quick.
What are the types of patterns in each category?
There are conceptual, logical and physical patterns in each category. Conceptual patterns are very high level solution for the given problem at the given context. Physical patterns spells out the implementation solution for the given problem at the given context. Logical patterns are between physical and conceptual.