Entwurfsmuster · Middle · Frage 1 von 75

Welches Muster wurde bei diesem Refactoring angewendet?

// before
function price(type, sum) {
  if (type === "vip") return sum * 0.8;
  if (type === "sale") return sum * 0.9;
  return sum;
}
// after
const discounts = { vip: s => s * 0.8, sale: s => s * 0.9, regular: s => s };
const price = (type, sum) => discounts[type](sum);
Antwort zeigen

Richtige Antwort: Strategy: die Algorithmen wurden in austauschbare Funktionen verlagert

Erklärung

Jeder Rabatt ist eine eigene Strategy, und ein neuer kommt hinzu, ohne die Funktion price zu ändern (auch ein Beispiel für OCP). In JS ist eine Strategy oft einfach ein Objekt aus Funktionen statt einer Klassenhierarchie.

Zum Weiterlesen

Fehler in der Frage

Entwurfsmuster · Middle · Frage 1

Teste dich selbst

Mach den Test Entwurfsmuster · Middle: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen