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ę
Coffeereprezentują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
Coffeei 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!