Avoiding repetitive if...else statements in factory patterns
It is often the case that we end up writing repetitive if...else
statements (or an equivalent switch
statement) that do similar things, often with little variation and often done by copying and pasting with small changes. As the number of alternative conditions increases, the code becomes both hard to read and hard to maintain. Repetitive if...else
statements can be replaced with various techniques, such as polymorphism. In this recipe, we will see how to avoid if...else
statements in factory patterns (a factory is a function or object that is used to create other objects) using a map of functions.
Getting ready
In this recipe, we will consider the following problem: building a system that can handle image files in various formats, such as bitmap, PNG, JPG, and so on. Obviously, the details are beyond the scope of this recipe; the part we are concerned with is creating objects that handle various image formats...