Sie sind hier 451
Funktionen erster Klasse
Den Code für die Getränkebestellung schreiben
Ihr erster Versuch könnte etwa so aussehen:
function serveCustomer(passenger) {
if (passenger.ticket === "Erste Klasse") {
alert("Möchten Sie einen Cocktail oder Wein?");
} else {
alert("Sie haben die Wahl zwischen Cola und Wasser.");
}
// Essensbestellung aufnehmen
// Abfall einsammeln
}
Besitzt der Passagier ein
Erste-Klasse-Ticket, geben
wir eine Meldung aus, die
fragt, ob ein Cocktail oder
lieber Wein gewünscht wird.
Hat der Gast ein
Economy-Ticket,
fragen wir, ob er
Cola oder Wasser
haben möchte.
Nicht schlecht. Für einfachen Code funktioniert das schon ganz gut: Wir übernehmen das
Ticket eines Passagiers und geben je nach Ticketklasse eine bestimmte Meldung aus. Wir
sollten aber auch die möglichen Nachteile dieses Codes bedenken. Sicher ist es einfach,
eine Getränkebestellung aufzunehmen. Was passiert aber mit der serveCustomer-
Funktion, wenn das Problem komplexer wird? Vielleicht wollen wir die drei Passagier-
klassen (Economy, Business und erste Klasse, mit Premium Economy wären es sogar vier)
unterschiedlich bedienen. Was passiert, wenn das Getränkeangebot komplexer wird oder
sich die Getränkeauswahl je nach Abflug- und Zielflughafen unterscheiden soll?
Wenn wir uns um diese komplexen Dinge kümmern sollen, wird serveCustomer schnell
eine große Funktion, die viel mehr können muss, als Getränke zu verwalten und Fluggäste
zu bedienen. Eine gute Faustregel ist, Funktionen so zu gestalten, dass sie genau eine
Sache machen und die aber wirklich gut.
Lesen Sie sich die möglichen Probleme in den letzten beiden Absätzen noch einmal durch.
Dann überlegen Sie, welches Codedesign es uns ermöglichen könnte, serveCustomer
auf das Wesentliche zu beschränken und uns trotzdem die Möglichkeit zu erhalten, in der
Zukunft auch Getränke zu servieren.
Zum Beispiel werden
Mai Tais auf Flügen
nach Hawai nur in
der ersten Klasse
serviert (zumindest
sagt man das).
Kopf-
nuss

Get JavaScript-Programmierung von Kopf bis Fuß now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.