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.
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...