علی قدرتی
علی قدرتی
خواندن ۲ دقیقه·۳ سال پیش

Controller

کنترلر مسئول رسیدگی به درخواست های کلاینت است. کنترلر میانجی است بین کاربر شما که روی "ارسال" کلیک می کند و back-end شما که عملیاتی را انجام میدهد.

نکات کلیدی

  • وقتی درخواستی از لایه UI می آید، الگوی Controller به ما کمک می کند تا تعیین کنیم اولین شی که پیام را از لایه UI دریافت می کند چیست.
  • این شی، یک شی کنترلر نامیده می شود که درخواستی را از لایه UI دریافت می کند و سپس با سایر اشیاء لایه domain برای انجام درخواست هماهنگ می شود.
  • کار را به کلاس دیگر محول می کند و فعالیت کلی را هماهنگ می کند.

مسئله

چه کسی باید مسئول رسیدگی به یک رویداد ورودی به سیستم باشد؟ یک رویداد ورودی، رویدادی است که توسط یک کلاینت خارجی ایجاد می شود. آنها با عملیات سیستم در پاسخ به رویدادهای سیستم مرتبط هستند، همانطور که message ها و method ها به هم مرتبط هستند.

به عنوان مثال، زمانی که نویسنده ای که از یک واژه پرداز استفاده می کند، دکمه "spell check" را فشار می دهد، یک رویداد سیستمی ایجاد می کند که نشان دهنده "perform a spell check" است.

کنترلر یک شیء رابط غیر کاربر (non-user interface object) است که مسئول دریافت یا مدیریت یک رویداد سیستم (system event) است. یک کنترلر متدی را برای عملکرد سیستم تعریف می کند.

چه کسی باید مسئول رسیدگی به یک رویداد ورودی باشد، کدام شیء(های) فراتر از لایه UI تعامل را دریافت می کند؟

راه حل

مسئولیت دریافت یا مدیریت system event را به کلاسی که یکی از گزینه های زیر را نشان می دهد، محول کنید:

  • نمایانگر overall system، device یا سعذسغسفثئ (facade controller) است.
  • سناریوی مورد استفاده را نشان می‌دهد که در آن system event رخ می‌دهد، که اغلب به نام Handler، Coordinator یا Session یا (use-case or session controller) نامیده می‌شود.
  • از یک کلاس کنترلر برای همه system event ها در سناریوی یکسان استفاده کنید.
Controller
Controller

فواید

  • کلاس‌های UI یا کلاس‌های دامنه problem/software دامنه می‌توانند بدون تأثیر بر طرف دیگر تغییر کنند.
  • کنترلر یک کلاس ساده است که بین کلاس های UI و دامنه، واسطه می شود.
  • درخواست رسیدگی به رویداد (event handling requests)
  • درخواست های خروجی (output requests)

کنترلر (Controller) همچنین یک اصطلاح مهم در چارچوب های توسعه وب مدرن است که ستونی از الگوی معماری Model-View-Controller را تشکیل می دهد. کنترلرها در AngularJS، Spring MVC، Struts MVC، Ruby on Rails، Sails و غیره استفاده می شوند.


برای مطالعه ی ادامه مطالب به لینک مراجعه کنید.

graspgrasp principlescontrollercontroller principlesoftware engineering
شاید از این پست‌ها خوشتان بیاید