Controller بخشی از معماری برنامه وب است که درخواست ورودی را دریافت می‌کند، داده‌های لازم را از سرویس‌ها یا مدل‌ها می‌گیرد و پاسخ مناسب را برمی‌گرداند.

کنترلر بهتر است هماهنگ‌کننده جریان درخواست باشد، نه محل انباشته شدن تمام قواعد کسب‌وکار. انتقال منطق پیچیده به سرویس‌ها یا اجزای دامنه، آزمون و نگهداری را آسان‌تر می‌کند.

یک سناریوی کاربردی

کنترلر سفارش باید درخواست را دریافت، اعتبارسنجی لازم را انجام و کار را به سرویس مناسب واگذار کند. انتقال محاسبه پیچیده قیمت‌گذاری به خود Controller باعث دشواری تست می‌شود.

برای تکمیل بحث، ارتباط این مفهوم را با روت و کنترل‌گر مرکزی بررسی کنید.

کنترلر لاغر در یک اپلیکیشن واقعی

کنترلر سفارش باید درخواست را اعتبارسنجی کند، سرویس ثبت سفارش را فراخوانی کند و پاسخ HTTP بسازد. محاسبه مالیات و رزرو انبار اگر مستقیم داخل متد کنترلر قرار بگیرد، تست مستقل آن منطق دشوارتر می‌شود.