You are here
Home > مقاله > MVC چیست ؟

MVC چیست ؟

طراحان نرم افزار هنگام معماری سیستم های نرم افزاری الگوهای مختلفی را برای پیاده سازی ساختار نرم افزار در پیش می گیرند. یکی از این الگوهای معماری نرم افزار MVC یا Model View Controller نام دارد.

مدل MVC یا Model-View-Control در اواخر سال 1970 شکل گرفت که الگوی نرم افزاریی بود که بر اساس ارائه اطلاعات جدا از متدهایی که با داده ها در ارتباط هستند ساخته شد. به عنوان یک توسعه دهنده سیستم MVC باید این اجازه را برای توسعه دهندگان front-end و back-end ایجاد کرد که هر دو طرف بتوانند با سیستم کار کنند بدون اینکه بخواهند در فایلها دخالت, اشتراک و یا تغییری ایجاد کنند.

با اینکه این سیستم در ابتدا برای محاسبات شخصی طراحی شده بود, اما بسیاری از توسعه دهندگان وب با اقتباس از این سیستم به طور گسترده ای از آن استفاده میکنند. دلیل آن هم تاکید این سیستم بر جدا بودن بخش ها است که به صورت غیر مستقیم باعث میشود که کدهای ما قابل استفاده مجدد باشند. این مدل به توسعه دهنگان این اجازه را میدهد که خیلی سریع توابع را آپدیت,  ویرایش و اضافه کنند.

Model
مفاهیم استفاده شده در نرم افزار تحت عنوان Model ها ایجاد می شوند. در MVC هریک از Class های ما یک Model هستند. Model در Logic برنامه هیچ نقشی ندارد. ارتباط با پایگاه داده هم در Model صورت می گیرد و Model ها پل ارتباطی بین نرم افزار و پایگاه داده نیز هستند

نکته مهم این است که این بخش از اتفاقاتی که در بخش های Controller و View می افتد هیچ دانش و اطلاعاتی ندارد. این بخش به دنبال پاسخ از دیگر بخش ها نیست و تنها هدف آن ذخیره سازی دائمی داده ها یا آماده سازی آنها برای انتقال به بخش های دیگر است.

این بخش داده ها را درون خود نگه میدارد, هیچ سوالی نمیکند اما به درخواست ها پاسخ میدهد. اغلب سختی که در بخش Model وجود دارد این است که با توجه به اینکه در همه سیستم ها در اوج است اما هیچ ارتباطی با بخش های دیگر ندارد.

View

در این بخش داده ها را از Model درخواست, و داده های نهایی را به عنوان خروجی نمایش میدهیم. به صورت سنتی در مدل MVC, بخش View جهت تولید کدهای HTML برای نمایش داده ها استفاده میشود. این بخش توسط کاربر فعال میشود که با بخش Controller در ارتباط است. برای مثال یک دکمه که توسط بخش View تولید شده است, کاربر روی آن کلیک میکند که باعث میشود بخش Controller عمل خاصی را انجام دهد.

تصورات غلطی از از بخش View از سوی توسعه دهندگان وب که از MVC برای توسعه اپلیکیشن هایشان استفاده میکنند وجود دارد. برای مثال اغلب فکر میکنند که این بخش هیچ ارتباطی با بخش Model ندارد و اطلاعات خود را از بخش Controller دریافت میکند. نکته مهم در پیاده سازی صحیح MVC این است که هیج ارتباطی بین Model و View وجود ندارد اما این ارتباط در بخش Controller ایجاد میشود.

Controller
Controller ها قلب تپنده نرم افزارهای MVC هستند. تمام تصمیم گیری ها و Logic نرم افزار در Controller قرار می گیرد و Controller پل ارتباطی Model و View است. در واقع با بیانی ساده می توان گفت Controller تصمیم می گیرد که چه داده ای از کدام Model دریافت شود و جهت نمایش به کدام View ارسال شود

حالا این سوال به وجود می آید که چرا چنین ساختاری می تواند خوب باشد. چه کمکی به تیم طراحی و توسعه نرم افزار می کند؟

بزرگترین مزیت این مدل در یک کلمه خلاصه میشود : نظم

چند نمونه از مزایای این روش در زیر اورده شده است :

1- MVC توسعه نرم افزار را آسان و راحت میکند.

2- MVC پروسه Unit testing را بسیار راحت می کند.

3- MVC کار گروهی همزمان را برای تیم طراح و برنامه نویس آسان می کند.

4- MVC با جدا سازی Logic از View و قرار دادن آن در Controller خوانایی کدها را بسیار بالا می برد.

5- و مهم تر از همه اینکه MVC به شکل شگفت انگیزی حجم کد نویسی را کاهش می دهد.

MVC در هر زبان برنامه نویسی قابل پیاده سازیست. حتی در جاوا اسکریپت. اما در حال حاضر از این روش بیشتر برای زبان های سمت سرور مثل PHP و ASP.Net استفاده می شود و در کل MVC یک روش بسیار کارا برای تیم های بزرگ تر است. هرچه تیم بزرگتری داشته باشید مزایای این الگو برای شما بیشتر ملموس خواهد بود.

نمودار این مدل بر اساس ویکیپدیا مانند زیر است :

mvc-process

پاسخ دهید

Top