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