Wzorce projektowe · Middle · Pytanie 1 z 75

Jaki wzorzec zastosowano w tym refaktoringu?

// 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);

Wyjaśnienie

Każdy rabat to osobna strategia, a nową dodaje się bez edytowania funkcji price (to także przykład OCP). W JS strategia to często po prostu obiekt funkcji zamiast hierarchii klas.

Do poczytania

Błąd w pytaniu

Wzorce projektowe · Middle · pytanie 1

Sprawdź się

Rozwiąż test Wzorce projektowe · Middle: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test