Strategy isn’t a magic anti-switch solution. What it does do is give modularise your code so that instead of a big switch and business logic all mixed up in a maintenance nightmare
- your business logic is isolated and open for extension
- you have options as for how you create your concrete classes (see Factory patterns for example)
- your infrastructure code (your main) can be very clean, free of both
For example – if you took the switch in your main method and created a class which accepted the command line argument and returned an instance of IDraw (i.e. it encapsulates that switch) your main is clean again and your switch is in a class whose sole purpose is to implement that choice.