This season will take a look at the software design patterns that we should know. Each episode will dig into a pattern and how to implement it. Some of these will be very familiar, and some may open your mind to a whole new approach to software solutions. In this first episode of the season, we look at why patterns matter at all.
Proper Object-Oriented Design
Software design patterns are the next logical steps once you are comfortable with OOD. It is one thing to create objects to model your system. However, patterns show us ways to use objects to model functionality and even bootstrap our applications with core object-oriented programming principles.
There are four main aspects of object-oriented programming.
These features are the essential part of a solution that is object-oriented by definition. The software design patterns we look at will help us take these four aspects and implement them in practical and even complex systems.
Build On Experience
One of the best parts about using patterns is that they are best practices in tackling object-oriented challenges. Some of these obstacles will be new to you either because you have not had a need for certain functionality, or because you chose a non-OOP solution to the problem. These patterns have even been built into modern languages. Thus, some patterns will be very familiar.
The patterns were created to help out developers when OOD was relatively young. We are now another two decades more experienced, but these patterns are still relevant. Yes, there have been some changes and additions over the years, but they have withstood the tests of time remarkably well.
Not For Everyone
As we tackle individual patterns throughout this season, we will look at examples in multiple languages. That may help you understand how to use patterns but not when. We will try to present situations and applications of each pattern. However, your particular application may not need to use a specific pattern and will almost definitely not need to use all of them. That is ok. The patterns will be ready and they will be waiting when you need them.