Der Weg zum Java-Profi – Teil III: Bad Smells, Refactorings, Entwurfsmuster