What are Patterns?
Patterns are reusable solutions to the common problem that we encounter every day. A pattern isn’t a finished design that can be transformed directly into code. They are descriptions on ways to solve problems that can be used in many different situations.
Patterns are not technology-specific either. A good pattern should be implementable in most—if not all—technologies, depending on the capabilities of the technology.
Most importantly, any pattern can be a double-edged sword— if implemented in the wrong place, it can be disastrous and create many problems for you. However, implemented in the right place, at the right time, it can make your life so much easier.
Why should you use them?
Patterns are, by principle, well-thought-out solutions to common problems. Many of us have encountered these problems before, and have used these ‘solutions’ to remedy them. If you encounter these problems, why recreate a solution when you can use an already proven answer?
Let say you need to create a data dimension for a new data warehouse project that is delivering the first star schema. Every data warehouse in the world should have a date dimension, so why create a new one from scratch every time? Why not leverage a proven pattern that provides a standard data dimension that you can then enhance if you need something unique for your project?