https://www.youtube.com/watch?v=lLobsdkN0Ms
Стратегия это поведенческий шаблон проектирования, который позволяет просто и удобно изменять функционал объекта путем делегирования этого функционала в другим объектам.
behavior = $behavior;
}
/**
* Изменение поведения.
*
* @param BehaviorInterface $behavior Поведение.
*/
public function changeBehavior(BehaviorInterface $behavior): void
{
$this->behavior = $behavior;
}
/**
* Выстрел.
*/
public function shoot(): void
{
$this->behavior->shoot();
}
/**
* Перемещение.
*/
public function move(): void
{
$this->behavior->move();
}
}
$soldier = new Soldier(new GunBehavior());
$soldier->move();
$soldier->shoot();
$soldier->changeBehavior(new MachineGunBehavior());
$soldier->move();
$soldier->shoot();
Комментарии (0)