Using the Strategy pattern in an algorithm design
The objective of the Strategy design pattern is to encapsulate an algorithm in a class. This way, it becomes easier to replace a given algorithm by another one or to chain several algorithms together in order to build a more complex process. In addition, this pattern facilitates the deployment of an algorithm by hiding as much of its complexity as possible behind an intuitive programming interface.
Getting ready
Let's say we want to build a simple algorithm that will identify all of the pixels in an image that have a given color. For this, the algorithm has to accept an image and a color as input and will return a binary image showing the pixels that have the specified color. The tolerance with which we want to accept a color will be another parameter to be specified before running the algorithm.
How to do it…
Once an algorithm has been encapsulated in a class using the Strategy design pattern, it can be deployed by creating an instance of this...