Optimizing your strategies
Our Strategy code is pretty vanilla right now, but we can make the context more efficient and robust by allowing strategies to be swapped out at any time, using a default strategy, and deciding whether to inject or store the information our strategies need to get work done.
Adding interchangeable strategies
I’ve mentioned that strategies get chosen at runtime (and that’s how it was laid out in the original Gang of Four content), but it’s also useful to be able to switch strategies using the same context while the application is running.
Update LeaderboardContext.cs
to match the following code, which adds a public method for changing the current strategy to the method parameter. Not only is this approach more flexible (because you’re not limited to runtime strategy decisions) but it’s also handy if your strategies are components attached to GameObjects
in the scene and you want to pass them to your context but...