The Strategy pattern allows you to swap out different algorithms or strategies without changing the overall behaviour of the program. This pattern is part of behavioural design pattern.
The Strategy pattern enables following the Open/Closed principle by promoting abstraction, encapsulation and loose coupling between interchangeable behaviours/algorithms and the