الگو طراحی (MVC) چیست؟
MVC مخفف عبارت Model-View-Controller (مدل-نما-کنترل گر) است. این یک الگوی معماری نرمافزار (Software Architectural Pattern) است که برای طراحی و توسعه اپلیکیشن های کاربردی، به ویژه برنامه های وب و دسکتاپ، استفاده میشود.هدف اصلی MVC جداسازی منطق کسب و کار (Business Logic)، منطق نمایش (Presentation Logic) و منطق کنترل (Control Logic) از یکدیگر است تا کدها ماژولارتر، قابل نگهداریتر و تستپذیرتر شوند.
1. اجزای اصلی MVC Model (مدل) وظیفه: مدیریت دادهها و منطق کسب و کار
- مسئول خواندن، نوشتن، ویرایش و اعتبارسنجی دادهها
- ارتباط با پایگاه داده، APIها یا هر منبع دادهای
- هیچ دانشی درباره رابط کاربری (View) یا کنترلگر ندارد
- یک کلاس User که اطلاعات کاربر و متدهای ذخیره/حذف را دارد
2. View (نما) وظیفه: نمایش دادهها به کاربر و دریافت ورودی
- مسئول رابط کاربری (UI) و نحوه نمایش اطلاعات
- از Model مستقل است و فقط دادههایی را که Controller به آن میدهد نمایش میدهد
- ممکن است شامل HTML، CSS، فرمها، دکمهها و المانهای گرافیکی باشد
- مثال: یک صفحه HTML که لیست کاربران را نشان میدهد
3. Controller (کنترل گر) وظیفه: دریافت ورودی از کاربر و هدایت آن به Model یا View
- واسط بین Model و View است
- درخواست کاربر را پردازش میکند، Model مناسب را صدا میزند و View مناسب را انتخاب میکند
- شامل منطک کنترل جریان برنامه (Application Flow)
- مثال: کنترلگری که وقتی کاربر روی دکمه “ثبت نام” کلیک میکند، دادهها را دریافت و به Model میدهد
جریان کاری در MVC (چرخه معمولی)
– کاربر با View تعامل میکند (مثلاً دکمهای را کلیک میکند)
– View رویداد را به Controller ارسال میکند
– Controller درخواست را پردازش و Model مناسب را به روزرسانی میکند
– Model تغییر میکند (مثلاً داده جدیدی ذخیره میشود)
– Model به Controller اطلاع می دهد که تغییر کرده است
– Controller View مربوطه را به روز میکند.
– View دادههای جدید را به کاربر نمایش میدهد