Wzorce projektowe – Decorator
Założenie: Stworzymy prosty przykład użycia wzorca Decorator, aby dodać nowe funkcjonalności do istniejącego obiektu bez modyfikowania jego kodu źródłowego.
Krok po kroku:
- Stworzenie podstawowej klasy: Zdefiniujemy klasę
Coffee
reprezentującą podstawowy napój. - Stworzenie dekoratora: Zdefiniujemy abstrakcyjną klasę
CoffeeDecorator
, która będzie rozszerzać funkcjonalnośćCoffee
. - Dodanie konkretnego dekoratora: Stworzymy klasę
Milk
, która dodaje mleko do kawy. - Użycie dekoratora: Utworzymy obiekt
Coffee
i dodamy do niego dekoratorMilk
.
coffee = $coffee;
}
abstract public function getDescription(): string;
}
?>
coffee->getDescription() . ", z mlekiem";
}
public function cost(): float {
return $this->coffee->cost() + 0.5;
}
}
?>
getDescription() . "
";
echo "Cena: " . $coffeeWithMilk->cost() . " zł";
?>
Ten przykład pokazuje podstawowe zastosowanie wzorca Decorator w PHP. Możesz dodać więcej dekoratorów (np. cukier, syrop) bez modyfikowania oryginalnej klasy Coffee
. Zachęcamy do dalszego zgłębiania tematu wzorców projektowych!