Schnittstellen
zwischen verschiedenen Programmteilen sind ein wichtiger Teil in der Softwareentwicklung.
Einerseits sollten sie möglichst einfach sein, andererseits müssen sie alle Zustände zweifelsfrei definieren.
Die Schnittstelle Modell - GUI (Klasse Control) besitzt folgende Methoden:
Gültigkeit der
Befehle:
Zu Beginn kann nur
startGame aufgerufen werden. Der Befehl wird deaktiviert, sobald ein Spiel
gestartet wurde. Das Ende des laufenden Spiels oder cancelGame heben die
Blockade auf.
Nach startGame muss
setShip aufgerufen werden, bis die Flotte vollständig gesetzt ist. Während dieser Zeit ist auch der Befehl checkShip aktiv. Im Fall von Modus 3 wird
setShip nur einmal aufgerufen und start wird ignoriert,
falls der Wert nicht 0 beträgt.
Anschliessened muss
so oft shoot aufgerufen werden, bis das Spiel beendet ist.
cancelGame ist aktiv,
sobald ein Spiel gestartet wurde, und kann jederzeit erfolgen.
status und statistics können jederzeit
aufgerufen werden, sobald die Flotten gesetzt sind.
Rückgabewerte:
Methoden, welche
Werte ans GUI zurückliefern, geben mit ihrem Rückgabewert nur
an, wie viele Werte bei GetData abgeholt werden müssen. Auf diese
Weise kann eine variable Anzahl Parameter übergeben werden, ohne eine
aufwändige Umwandlung in einen String zu tätigen, und ohne einen
Zeiger übergeben zu müssen. Befehle, welche nicht
aktiv sind, geben bei einem Aufruf vom GUI den Wert –2 zurück, bei
einer Fehlübergabe –1, wenn der Befehl ok ist, ohne dass Daten abgeholt
werden müssen 0, und eine positive Zahl n bedeuted, dass
der Befehl ok ist und n Werte bei getData abgeholt werden müssen (bei einfachen Funktionen gilt 0 = false und 1 = true).
|