Front Controller (фронт-контролер, єдина точка входу) - шаблон проєктування, який є спеціалізованою варіацією шаблону проєктування Посередник. Задачею фронт-контролера є надання єдиної точки входу для обробки усіх запитів та виклик відповідної поведінки в залежності від запиту.

Фронт-контролер найчастіше використовується у вебзастосунках, де є багато подібних речей, які потрібно виконати при обробці запиту. Це може бути безпека, інтернаціоналізація, забезпечення певного вигляду для певних користувачів. Якщо обробка вхідних запитів розподілена між кількома контролерами це може призвести до дублювання поведінки. Крім того виникають складності зі зміною поведінки під час виконання. Фронт-контролер об'єднує обробку запитів шляхом їх направлення через єдиний об'єкт-обробник. Цей об'єкт реалізовує загальну поведінку, яка може бути змінена під час виконання за допомогою декораторів. Після цього Front controller створює потрібні об'єкти відповідно до запиту та викликає методи для реалізації конкретної задачі.

Фронт-контролер може бути реалізований у вигляді Java-об'єкта, або, як скрипт PHP, ASP, JSP або CFML, що викликається на кожен запит вебсесії. Цей скрипт, наприклад index.php, буде обробляти всі запити, що є спільними для вебзастосування або фреймворку, наприклад обробка сесій, кешування і фільтрація вхідних даних.

Альтернативою фронт-контролеру можуть бути окремі скрипти наприклад login.php і order.php для обробки певного типу запиту. Кожному скрипту доведеться дублювати код або об'єкти, які є спільними для всіх запитів, але кожен скрипт має порівняно більшу гнучкість для обробки конкретного запиту.

Приклади ред.

Zend Framework та інші MVC фреймворки PHP

ASP.NET MVC Framework

Джерела ред.

Martin Fowler. Front Controller [Архівовано 21 квітня 2012 у Wayback Machine.]

Посилання ред.

Див. також ред.

Посередник (шаблон проєктування)