الگو طراحی (MVC) چیست؟

الگو طراحی (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 داده‌های جدید را به کاربر نمایش می‌دهد

به اشتراک بگذارید

دیدگاه شما

رایموند باغومیان

بنده رایموند هستم و سال ۹۲ وارد برنامه نویسی وب شدم و برنامه وردپرس و لاراول هستم. کم و بیش پروژه برای وردپرس و PHP نوشتم و تجربیات خودم رو با شما به اشتراک می گذارم.