Let's start by defining design patterns. All this talk these days, but what are they really? Well, simply put, design patterns are solutions to common problems in software design. To avoid solving the same problems over and over again in different ways, we (the software community) have created a set of common patterns to help us. These patterns are rough blueprints which have some amount of flexibility built in so you can apply them to your usecase and/or combine them as necessary.
Now for the bigger question, they are useful, I get it, but why should I use them? Well, if you are building a solution for FizzBuzz which you are going to throw away five minutes later, you probably dont need design patterns. But if you are going to build something which you'll have to extend tomorrow, ship and maintain for years to come, it's a good idea to throw in some design patterns to keep it maintainable, extensible and robust.
Design patterns are less about the functional side of things, they are not algorithmically intense recipies for solving problems, but rather a question of form and style.
Here are some frequently used design patterns which you might have already heard of:
If none of these ring a bell don't worry about it, we'll cover them in another post.
Tweet about this post.