*** اگر با مفاهیم آشنا هستید فقط به بخش آخر و مثال مراجعه کنید!!! ***
اول از همه برای چندمین مرتبه بد نیست بازهم بدانید که MVC مخفف کلمات Model View Controller هست!
هدف از این معماری چیست؟
اینکه بتوانیم بخشهای منطق، عملکرد و رابط کاربری را از هم جدا کنیم تا:
۱. سادهتر پروژه مورد نظر خطایابی شود
۲. چند نفر بهطور همزمان این پروژه را بدون تداخل و سردرگمی توسعه بدهند
۳. کد ما بسیار خواناتر باشد
۴. به راحتی بتوان از کدها یا بخشی از آنها در پروژههای دیگر استفاده کرد.
***
مدل چیست؟
مسئول گرفتن و دستکاری کردن دادهها در دیتابیس است. مدل در واقع بهعنوان مغز برنامه ماست
دادههای مورد نظر کنترلر توسط مدل در اختیار آن قرار داده میشود
ویوو چیست؟
چیزی است که کاربر در هنگام تعامل با برنامه ما مشاهده میکند
در واقع ویوو همان کدهای اچتیامال و سیاساس هستند که دادههای مورد نظر دریافت شده از مدل را با ظاهری زیبا نمایش میدهند تا کاربر مجبور نشود مثلا برای دیدن اطلاعات پنل کاربری خودش با جدولهای بیروح و زمخت دیتابیس روبرو شود
کنترلر چیست؟
تمام تعاملات کاربر را کنترل و به محل مناسب هدایت میکند. یعنی زمانیکه کاربر روی یک عکس کلیک یا فرم ثبتنام را تکمیل یا سبد خریدش را باز میکند همه این رفتارها توسط کنترل به بخش مناسب هدایت میشود تا کاربر ویوو تعریف شده را تماشا کند و حتی اگر دادهای نیاز باشد آن را از مدل دریافت و به ویوو پاس میدهد
به زبان ساده کنترل را بهعنوان مدیر درنظر بگیرید
***
:یک مثال برای درک بیشتر
:تصور کنید برای دریافت کتاب به یک کتابخانه رفتهاید
اولین چیزی که شما مشاهده میکنید و در واقع محیط کتابخانه که شامل میز و پیشخوان و محل دریافت کتاب همان ویوو هستند
مسئولی که شما نام کتاب مورد نظرتان را به آن اعلام میکنید همان کنترلر است
نرمافزاری که کتاب اعلام شده را در آن جستجو میکند و قفسه کتاب را مشخص میکند همان مدل است
پس در ابتدا شما به کنترلر کتاب را درخواست میدهید سپس او با استفاده از مدل داده (کتاب) مورد نظر را پیدا میکند و با قرار دادن آن روی پیشخوان یا همان ویوو نتیجه را به شما نمایش میدهد