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.
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.