When you ask some programmers about design patterns, the answer is “well, I don’t know them by name, but I know them”. If you don’t know them by name, then you don’t know them.
A design pattern is a known solution to a known problem, and that solution has a name. You may know how to write an adapter without knowing it’s an adapter, but because you don’t know it’s an adapter, you don’t know the pattern.
I enjoy the show LEVERAGE, especially season 1. NATE and SOPHIE are the two top scammers on the show. When they talk, they bounce ideas back and forth, and those ideas have simple names. In the episode I just paused to write this, they were discussing a problem, and at the same time they both concluded “THE FIDDLE GAME”. They both know what the FIDDLE GAME is. They don’t have to explain it to each other and eventually conclude that they’re both talking about the same thing. THE FIDDLE GAME relays to each other everything they need to know. Personally, I don’t know the details of the fiddle game, because I paused the show, but they do.
It’s the same thing with design patterns. If you know design patterns, and you’re talking to someone else, you can simply say “write an adapter”, rather than “let’s write a class that acts as a middle man between this untouchable legacy component, and this new component with a known interface”.
So, if you don’t know the name of the pattern, then you don’t know the pattern. When someone asks if you know patterns, then the answer is no. You may know how to code, but you don’t know the patterns.
Now, back to our program. Let’s see what this FIDDLE GAME is all about.