I don’t like to use fancy words or complex statements that make me look smart, but won’t help you understand the concept 100%. That’s why my approach in general is simple enough for you to know exactly what I am talking about. I like to show you a practical example because that will make the idea much clearer. Thus, without further ado, let’s jump right into it.

Before explaining what the strategy design pattern is about, you should understand the need for it. Originally, there was a common problem software engineers regularly faced, which led them to team up and create a common solution for it. Let me explain the problem to you by teaching you about ducks. Weird, right? But give me a chance; you won’t regret it.
Let’s assume we want to create a software system to manage ducks. As you already know, all ducks swim. How would you represent a duck in your software?