Refactoring
Replace switches with polymorphism
What is the problem?
Adding a new type means changes to many files
This can be error prone and complex
Example
What is polymorphism
Literally, many forms
The same interface can be used to represent many classes
Example
How can we use it make code changes faster?
Example
Step 1
Find switch
Step 2
Write tests
Step 3
Add classes
Step 4
Create factory
Step 5
Refactor and run tests
Key points
Any time you see a switch statement, check if it could be replaced with polymorphism
Uncle Bob: switch statements are only okay inside a factory
Pros and cons
Cons
Pros
Harder to add new methods to classes
Easy to add new objects
Many more classes
Reduces code and scope of changes
Made with Slides.com