What is the Strategy pattern and what problem does it solve?
The Strategy pattern is a behavioral design pattern that defines a family of algorithms,
encapsulates each one, and makes them interchangeable at runtime.
It allows the algorithm to vary independently from clients that use it.
Problem it solves:
Avoids large if-else or switch statements when selecting behavior and promotes
flexibility by decoupling the algorithm from the client using it.