Pozbądź się ifów ze swojego kodu za pomocą polimorfizmu

Skoro pracujesz z językiem obiektowym to czemu nie piszesz obiektowo? Większość instrukcji warunkowych może zostać zastąpiona polimorfizmem. Jakie są zalety takiego rozwiązania oraz jak przeprowadzić refactoring brzydkiej metody pełnej różnych warunków?