Design: Strategy Pattern Implementation
Design and implement the Strategy pattern for a simple context that can switch between different algorithms dynamically. Out of scope: complex UI integration or persistence.
Functional Requirements
FR1: Allow an object to change its behavior at runtime
FR2: Support multiple interchangeable algorithms or strategies
FR3: Enable adding new strategies without modifying existing code
FR4: Clients should interact with a common interface to use strategies
Non-Functional Requirements
NFR1: Design should follow Open/Closed Principle
NFR2: Strategy switching should be efficient with minimal overhead
NFR3: Code should be easy to understand and maintain
