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