Trait a wzorce projektowe
Założenie: Pokażemy, jak użyć Traitów do implementacji prostego wzorca Strategy w PHP.
Krok po kroku:
- Definicja interfejsu strategii: Zdefiniujemy interfejs, który będą implementowały nasze strategie.
- Implementacja strategii: Stworzymy dwie klasy implementujące interfejs
PaymentStrategy
: jedną dla płatności kartą, drugą dla płatności przelewem. - Użycie Traita do wstrzykiwania strategii: Stworzymy Trait, który będzie przechowywał i używał wybranej strategii płatności.
- Klasa wykorzystująca Trait: Stworzymy klasę
Order
, która będzie korzystać z naszego Traita. - Wykorzystanie: Uruchomimy przykładowy kod.
paymentStrategy = $strategy;
}
public function processPayment(float $amount): string {
return $this->paymentStrategy->pay($amount);
}
}
?>
setPaymentStrategy($strategy);
}
public function placeOrder(float $amount): string {
return "Zamówienie złożone. " . $this->processPayment($amount);
}
}
?>
placeOrder(100.00) . "
";
$orderTransfer = new Order(new TransferPayment());
echo $orderTransfer->placeOrder(100.00);
?>
Ten przykład pokazuje, jak użyć Traitów do implementacji wzorca Strategy, co pozwala na elastyczne dodawanie nowych strategii bez modyfikacji głównej klasy.
Zachęcamy do dalszego zgłębiania tematu Traitów i wzorców projektowych w PHP!