درک مفهوم MVC

یکشنبه 27 اردیبهشت 1394

در این مقاله شما خواهید آموخت که MVC یا Model View Controller چیست و اینکه این یک framework است. امروز MVC جایگاه مناسبی پیدا کرده و به برنامه ها سرعت و قدرت بالایی بخشیده است.

درک مفهوم MVC

این مقاله برای مبتدیان الگوی Model-View-Controller (MVC) است (با ASP.NET MVC آنرا اشتباه نگیرید.). اگر شما مبتدی این Framework هستید این مقاله بسیار به شما کمک خواهد کرد.من میخواهم تمام بخش های MVC framework را برای شما شرح دهم و همچنین برای شما شرح خواهم دادکه چگونه این framework را برنامه های کاربردی خود اجرا کنید.

Model-View-Controller چیست؟

اگر شما در مدل OOP دارای توسعه برنامه های کاربردی هستید.پس درک این مقاله برای شما آسان خواهد بود. از طرف دیگر، شما ممکن است زمان فکر کردن برای فهمیدن این الگوی MVC داشته باشید. اما، نگران نباشید، شما به راحتی همگام خواهید شد همانطور که ما حرکت میکنیم.

اول از همه، درمورد مدلهای برنامه نویسی یا framework های دیگر فکر نکنید.همچنین (همانطور که قبلا اشاره شد)، MVC را با   ASP.NET MVC اشتباه نگیرید.این الگو در بین الگوهای دیگر نرم افزارهای طراحی خیلی رایج است. MVC فقط یک اصطلاح مورد استفاده برای توسعه نرم افزار در یک الگو است که تقسیم شده به 3 دسته بندی که در زیر می بینید:

Model: پایگاه داده نرم افزار کاربردی شما.

View : صفحه نمایشی برنامه کاربردی شما، به عبارت دیگر رابط گرافیکی کاربر

Controller: کنترلر منطق واقعی پس زمینه برنامه کاربردی شماست.

اینجا 3 دسته بندی در هر کد به صورت موثر توزیع شده است. من در بخش های آینده شرح خواهم داد که چگونه برنامه نویسی نرم افزارمیتواند به صورت ساده تر انجام شود.ابتدا اجازه دهید مفاهیم MVC را توضیح دهیم سپس پیاده سازی MVC در زبان های برنامه نویسی و فریم ورک های مختلف.

آشنایی با mvc

اجازه دهید ابتدا mvc را به عنوان موضوع بحث درنظر بگیریم. چگونه میتوانیم از اینها استفاده کنیم در واقع اینها چه هستند؟ MVC فقط یک framework یا الگو و یا معماری و یا هر چیزی که شما میخواهید آن را بنامید است.  این فقط مدلی است برای روند توسعه نرم افزار شما است که هدفی برای نگه داری سورس کد و دیتا سورس شماست. اگرچه این framework هدفی برای کاستن ابهام  و پیچیدگی پیدا شده در سرمایه گذاری نرم افزار است. اغلب وقتی یک نرم افزار کاربردی به مرحلع سرمایه گذاری پیچیدگی میرسد، این سخت تر از دیباگ کردن است.

حال میخواهیم MVC را با دنبال کردن 3 مورد زیر به طور کامل تشریح کنیم.

Model

مدل یک بخشی از معماری است که متمرکز میشود بر روی داده های نرم افزار کاربردی.داده های شما ممکن است از متدهای ارائه شده در زیر امده باشد:

1-پایگاه داده

2-گزارشات

3-دیتا سورس هایی مانند فایل ها، JSON یک مثال عمده است.

4-ورود کاربر

اینها برای نرم افزار کاربردی شما  بخش مدل ایجاد میکنند. Model مسئول بروزرسانی رابط کاربری و نشان دادن یک triggerبه یک رویداد (اگر یکی) در نرم افزار کاربردی برای اثبات اینکه داده ها تغییر کرده اند. اغلب، اینها یک نام خیالی هستند که به مدل ساده داده ها داده شده اند. در بیشتر زبانهای برنامه نویسی این میتواند یک کلاس ساده باشد با تعداد محدودی عضو (شامل جرئیات یا صفت های جداول پایگاه داده برای یک شی) و تعدادی تابع برای ذخیره داده در دیتا سورس و استخراج این. این باید از سورس نگهداری کند و از تعاملات کاربری دوری کند. نگهداری این بصورت جداگانه در به حداقل رساندن تلاش برای دسترسی های غیر مجاز کمک خواهد کرد.

نکته: بخش تابع میتواند درون کنترلر برای ذخیره داده یا استخراج این اجرا شود.

View

View بخش رابط کاربری نرم افزار کاربردی است. تمام طراحی های رابط، همانند Button , فیلدهای ورودی و همانند آن، به این دسته بندی اضافه شده اند. در بیشتر نرم افزار های کاربردی(مانند نرم افزار های کاربردی تحت وب) صفحات HTML برای نمایش استفاده میشوند در حالی که در دیگر برنامه های کاربردی و چهارچوب ها از روش های دیگر برای ایجاد یک رابط استفاده میشود.مانند فایل های XAML در برنامه های WPF.

هدف اصلی برای داشتن یه View داشتن داده از مدل  و نشان دادن ان به کاربر است. تمام استایل ها و دیگر UI ها و تکنیک های UI باید اینجا پیاده شوند. Viewها اغلب با کنترلرها فراخوانی میشوند و بعد از پر شدن از داده از سمت مدل برای کاربر بازگردانده می شوند.

Controller

به بخش مهم این چهارچوب رسیدیم، کنترلر منطق نرم افزار در حال اجراست. بیشتر از تابع های در حال اجرا ترکیب شده است، کدهای منطقی اساسی دیگر برای کاربر و مانند کدهای دیگری که باید اجرا شوند سراسر مرحله اولیه برای خطوط قبلی وقتی که برنامه به پایان میرسد.

در برنامه وب، کنترلر مسئول مدیریت درخواست های امده از طرف کاربر و سپس برگرداندن پاسخ به کاربر بعد از ادغام داده ها از مدل به View ضروری است. اگرچه این عملیات شبیه گرفتن درخواست و برگرداندن پاسخ است. اما در واقع این عملیات چیزی است شبیه :

1-درخواست ایجاد شده

2-کنترلر درخواست را مدیریت میکند

URL-3 خوانده شده و سپس تابع مناسب با آن اجرا شده

4-درون این تابع، مدل از داده ها خواسته شده و داده ها درون View جاگذاری شده اند

View-5 بعد از درخواست  برگردانده میشود

چهارچوب کلی چیزی شبیه عکس زیر است.

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

در واقع کاربر نمیتواند به مدل دسترسی داشته باشد .برای کاربر یک ویو با دکمه ها وابزار مورد نیاز باید فراهم شود.

ویو با کنترلر میتواند تعامل داشته باشد  برای دانلود داده (در صورت نیاز).این الگوی MVC است از توسعه نرم افزار.

بایستی  ابزار و مواد دیگر را برای توسعه دهندگان در یک چارچوب یا زبان خاصی فراهم کند.

هر نوع چارچوب یا نوع

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

 زبان پیش فرض که استفاده شده C# می باشد، ولی میتوانید از زبان خاص خودتان استفاده کنید. C و C++ و جاوا کاملا شبیه به زبان هستند.

ساخت یک مدل

ایجاد یک مدل کارآسانی است،مدل فقط منابع داده را بسته بندی می کند که میتواند به یک شی تبدیل شود و سپس با برنامه شما به تعامل بپردازد.کد زیر یک شی ساده می باشد:

    class Model   
    {  
        public string Name   
        {  
            get;  
            set;  
        }  
        public int Age   
        {  
            get;  
            set;  
        }  
        public string Email   
        {  
            get;  
            set;  
        }  
        public string Message   
        {  
            get;  
            set;  
        }  
      
        // Functions  
        public static List < Model > GetData() { /* code */  
        }  
        public static void SaveData(List < Model > data) { /* code */  
        }  
    }  

کد قبلی مدل برای نرم افزار شما است.  که دارای چند صفت(از پایگاه داده) و 2 توابع، یکی برای بازیابی داده ها و دیگری برای ذخیره آن.

شما هم اکنون می توانید  با پایگاه داده، فایل  و یا منابع دیگر  در توابع ارتباط برقرارکنید .  اطلاعات خود را پرکنید با استفاده از منابع داده که شما در حال حاضر دارید.

ساخت یک ویو

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

نمایش دهیم.

ساخت یک کنترلر

کنترلر تنها کد میباشد که منطق برای برنامه را اجرا میکند.شامل تعامل با رویدادها و زمینه سیستم عامل میشود.

MVC در نرم افزار وب سایت

اگر می خواهید به منظور توسعه یک برنامه تحت وب جدید، شما می توانید آن را به شیوه ای بسیار شبیه توسعه همانطور که در بالا بحث شده است. ارسال کد خود را به شیوه ای که آن را به سه دسته زیر تقسیم بندی کرد.

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

شما میتوانید کلاس هایی بسازید که رویداد های شروع را مدیریت میکنند و همچنین کلاس هایی که رویداد های تعاملی با ویو شما را مدیریت می کنند .

MVC در برنامه های وب

اگر می خواهید  یک برنامه تحت وب جدید را توسعه دهید، شما می توانید آن را به شیوه  توسعه  که در بالا بحث شده است انجام دهید.  کد خود را به شیوه ای که آن را به سه دسته زیربتوان تقسیم بندی کرد بنویسید:

1-Model

2-View

3-Controller

این کمک بزرگی است زمانی که برنامه شما به سطح پیچیدگی می رسد. اگر می خواهیداز  Asp.Net استفاده کنید، در حال حاضر  یک چارچوب MVC برای شما با  IDE آماده خدمت به نیازهای شما ساخته شده وجود دارد.

Offline applications

اگر شما از جاوا استفاده میکنید، پس من موضوع مهم دیگری برای همان دارم. شما می توانید آن را بخوانید تا یاد بگیرند که چگونه برای پیاده سازی الگوی مشابه در توسعه نرم افزار جاوا. دانلود و نمونه های موجود در آن را امتحان کنید.

زبان نرم افزار های دیگر و چارچوب ها همچنین  الگوی MVC را پیاده سازی میکنند، شما فقط نیاز به طبقه بندی کد نرم افزار خود دارید.

Points of interest

در حال حاضر من شما را با دیگر نقاط مفید برای برنامه های کاربردی امن و چارچوب ارائه می کنند آشنا کنم موارد زیر ممکن است برای شما مفید باشند:

1-الگویبه  MVC شما کمک می کند در مرتب سازی کد و طبقه بندی کردن انواع مشابه از کد.
 -2شما هرگز نباید اجازه  دهید کاربر خود را به تعامل با مدل. مدل شامل داده ها و یا تعریف برای داده های شما. اگر کاربر بالقوه قادر به تعامل با مدل در برنامه های شما است ، بررسی های امنیتی را دریافت کنید. به همین دلیل است که همیشه  از کنترلر برای اعتبارسنجی درخواست ها استفاده میشود و داده ها از طریق مدل قابلیت دسترسی داشته باشند.
 -3من از پایگاه های داده استفاده کردم، فایل های JSON و انواع دیگر منابع داده های موجود . بنابراین مدل خود را قادر به برقراری ارتباط با هر نوع منبع داده سازید.
 -4شما همچنین می توانید از Ajax برای اجرای بخشی از یک کنترلر  در ویو های خود های استفاده کنید.
 -5 الگوی MVC  یک نرم افزارطراحی و توسعه معماری است

 

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید