PyDay: Kaffee kochen

Flattr this!

KaffeemaschineNun sind eine Menge Vorbereitungen erledigt und wir haben einiges über das organisatorische Umfeld unseres Projektes gelernt. Jetzt soll es darum gehen, die Kernfunktionalität unserer Kaffeemaschine auszuweiten und vor allem diese mit unserer Kommandozeile in der Routine main() zu verbinden.

Dazu werden wir zunächst unsere Klasse Kocher etwas aufbohren und parallel natürlich die zugehörigen Unittests programmieren.

Wie bereits zu Beginn erläutert, definiert unsere Kommandozeilenschnittstelle (siehe die Funktion parse_command_line im Modul kaffeemaschine.py) zwei Parameter, die die Menge und die Sorte entgegennehmen. Ferner sind dort bereits Standardwerte hinterlegt, die immer dann greifen, wenn der Gast sich nicht für etwas bestimmtes entschieden hat. Denkbar wäre es natürlich, diese (oder andere) Standardwerte auch in der Kocher-Klasse zu hinterlegen, doch ich halte dies nicht für sinnvoll. Ich finde, die Klasse sollte mit konkreten Werten bestückt werden, welche sie im Constructor entgegen nimmt und in lokalen Variablen speichert. Zusätzlich setzt sie noch einen Merker für den Zustand “fertig” auf den Initialwert “False”.

151483976163d3b7ed48bf5_000000

Das ist soweit schön, aber damit kann noch kein Kaffee gekocht werden. Das wollen wir nun ergänzen.

Zunächst bekommt der Kocher eine Funktion spendiert, die kochen kann. Vorerst geht das recht flott, später folgt da noch eine kleine Ergänzung:

151483976163d3b7ed48bf5_000001

Dann kommen noch ein paar Properties, damit gewisse Eigenschaften nur gelesen werden können:

151483976163d3b7ed48bf5_000002

Das ist der Stand in Changeset 1794186. Es folgen die Unittests (Changeset 1a42a8c).

Nun müssen wir nur noch die Kocher-Klasse in der main-Routine instanzieren und ihre Methoden entsprechend aufrufen:

151483976163d3b7ed48bf5_000003

Wie das genau gehen kann, erfährst du in Changeset 6a800bb. Die einzelnen Schritte sind in Mercurial ebenfalls dokumentiert. Aber probiere es ruhig vorher mal selbst aus.

Ähnliche Artikel:

1 Kommentar

  1. Die Changesets sind nun ebenfalls auf Bitbucket verfügbar.

Schreibe einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht.

2 + 6 =