Стратегия (strategy). Шаблоны проектирования.

Шаблоны проектирования
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)

Войдите, чтобы оставить комментарий.