Что такое Chain of Responsibility?

Ответ

Запрос передается по цепочке обработчиков; каждый решает, обработать самому или передать дальше.

interface Handler {
    public function setNext(Handler $h): Handler;
    public function handle(Request $request): ?Response;
}
class AuthMiddleware implements Handler {
    private ?Handler $next = null;
    public function setNext(Handler $h): Handler { $this->next = $h; return $h; }
    public function handle(Request $r): ?Response {
        if (!$this->auth->check($r)) return $this->unauthorized();
        return $this->next?->handle($r);
    }
}

Примеры: middleware, валидация по цепочке, логирование/кэш по цепочке.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.