The Strategy Pattern is implemented by defining a set of strategy interfaces, then each concrete strategy class implement these interfaces. This allows the client to choose a specific strategy to execute at runtime.
The context class maintains a reference to a strategy object and provides an interface for the client to invoke the concrete strategy of the strategy object.