Wzorce projektowe – Command
Założenie: Zrozumieć i zaimplementować wzorzec projektowy Command w PHP, aby enkapsulować żądanie jako obiekt.
Krok po kroku:
- Stworzenie interfejsu Command: Definiujemy interfejs, który będzie musiała implementować każda komenda.
- Implementacja konkretnych komend: Tworzymy klasy implementujące interfejs
Command
. Każda klasa reprezentuje konkretne żądanie. - Klasa Inwoker: Tworzymy klasę, która będzie odpowiedzialna za wywoływanie komend.
- Użycie: Teraz możemy użyć stworzonych klas.
interface Command {
public function execute();
}
Ten interfejs definiuje metodę execute()
, która będzie zawierała logikę wykonania komendy.
class TurnOnLight implements Command {
public function execute() {
echo "Światło włączone!\n";
}
}
class TurnOffLight implements Command {
public function execute() {
echo "Światło wyłączone!\n";
}
}
Klasy TurnOnLight
i TurnOffLight
implementują interfejs Command
i definiują swoją własną logikę w metodzie execute()
.
class Invoker {
private $command;
public function setCommand(Command $command) {
$this->command = $command;
}
public function executeCommand() {
$this->command->execute();
}
}
Klasa Invoker
przechowuje referencję do obiektu Command
i wywołuje jego metodę execute()
.
$invoker = new Invoker();
$turnOn = new TurnOnLight();
$turnOff = new TurnOffLight();
$invoker->setCommand($turnOn);
$invoker->executeCommand(); // Wyświetli: Światło włączone!
$invoker->setCommand($turnOff);
$invoker->executeCommand(); // Wyświetli: Światło wyłączone!
Ten kod demonstruje, jak używać wzorca Command do wywoływania różnych akcji.
Ten przykład prezentuje podstawy wzorca projektowego Command w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z bardziej zaawansowanymi zastosowaniami tego wzorca.