Mir wurde dieser Ausdruck und dieses Muster vor langer Zeit beigebracht. Sicher, der Name kommt von alten Pumpen, die mit Wasser gefüllt werden mussten, bevor sie Wasser pumpen konnten, aber wen interessiert das? Wir sprechen hier über Code.
Einige wirklich gute Beispiele und eine Erklärung dessen, was das Muster leistet, wären willkommen. Wie wird dieses Muster heute gesehen?
Beim Grundieren funktioniert manchmal eine defekte Schleife, jedoch auf Kosten von DRY . So kann es ein kurzer Halt auf dem Weg zu einem besseren Design sein. Wird dies als Anti-Muster angesehen? Gibt es Alternativen?
design-patterns
anti-patterns
loops
kandierte_orange
quelle
quelle
Antworten:
Diese Metapher bezieht sich mit ziemlicher Sicherheit auf die Praxis, die erste bedingte Prüfung in einer
while
Schleife einzurichten. Wenn Sie dies nicht tun, funktioniert die Schleife nicht. Es ist ein etabliertes Muster, und es hat sich seit derwhile
Erfindung der Schleife nicht geändert . Die Voraussetzung für die Einstellung der Ausgangsbedingung in einerwhile
Schleife ist kein Defekt.Der Primer kann eine gelesene Anweisung sein oder was auch immer die Ausgangsbedingung richtig einstellt. Das Festlegen der Anfangsbedingung mithilfe einer Leseanweisung wird als "Priming Read" bezeichnet.
In C # können die beiden
Readline()
Aufrufe innerhalb der Bedingung zu einer einzigen Anweisung zusammengefasst werden:quelle
A T(B A)
Grundierungsmuster dupliziert dies aber A. Gibt es allgemeine Alternativen zu diesem allgemeinen Muster?return
.while
Schleife weiterhin benötigen , aber wenn Sie die Zeichenfolge in der gerade gelesenen Zeile gefunden haben, können Sie entwederbreak
oderreturn
.