Objektorientierung in der Anwendung

JavaBeans

Gebundene Properties *

Die folgenden Klassen lösen sich von der Komponente Spin wieder und sind nicht visuell.

Schreibe ein Objekt Trinkfreund und Meckermaxe. Der Trinkfreund besitzt eine Property alkoholspiegel, die durch die Methode nochEinBier() um 0,2 erhöht wird.

Schreibe eine Ereignisbehandlung, die die Property alkoholspiegel mit einem PropertyChangeListener überwacht. Immer dann, wenn der Trinkfreund nochEinBier() aufruft, soll ein Ereignis ausgelöst werden, auf das ein Meckermaxe-Objekt reagieren kann. Der Meckermaxe soll bei einem alkoholspiegel von 1.0 auf dem Bildschirm "Jetzt ist aber genug" ausgeben.

Eigenschaften mit Widerspruchsrecht *

Ergänze nochEinBier() mit einem Vetorecht nach folgendem Muster:

public void nochEinBier() throws PropertyVetoException { }

Der Meckermaxe soll bei einem Spiegel über 1.0 das nochEinBier() mit einem Veto verhindern.

Refactoring

Refactoring von Code ist eine wichtige Aufgabe von Entwicklern neben der Neuentwicklung von Programmcode. Die Pflege und Aufarbeitung darf natürlich nicht zum Selbstzweck werden, aber langlebige Software muss zwingend für immer die Kriterien Wartbarkeit und Erweiterbarkeit bewahren und gut dokumentiert und verständlich sein. Den größten Einfluss auf das Thema Refactoring hat das Refactoring-Buch von Martin Fowler, der auf seiner Webseite das Prinzip Refactoring, Refactoring-Tools und News auflistet.

Martin Fowler hat mir erlaubt, seinen Refactoring-Katalog auf Deutsch zu übersetzen: http://www.tutego.com/java/refactoring/catalog/. Gehe kurz über alle Refactorings.

Moderne IDEs erlauben von Haus aus das Refactoring von Code. Im Fall von Eclipse finde zu jedem unterstützten Refactoring ein Beispiel und lasse es von Eclipse umbauen: