چگونه میتوان آن را با استفاده از نمودار توالی UML نمایش داد؟
MVC (که به عنوان مدل-نما-کنترلگر شناخته میشود) یک الگو در طراحی نرمافزار است که به طور معمول برای پیادهسازی رابطهای کاربری، دادهها و منطق کنترل استفاده میشود. این الگو بر جداسازی بین منطق کسبوکار و ارائه نرمافزار تأکید دارد. این «جداسازی نگرانیها» تقسیم کار بهتری را فراهم میکند و نگهداری بهتری را به ارمغان میآورد.
سه بخش MVC
سه بخشالگوی طراحی نرمافزار MVCمیتوان به صورت زیر توصیف کرد:
- مدل: مدیریت دادهها و منطق کسبوکار. مدل مسئول مدیریت دادههای برنامه است. این مدل ورودی کاربر را از کنترلگر دریافت میکند.
- نما: مدیریت چیدمان و نمایش. نما ارائه مدل را در یک فرمت خاص رندر میکند.
- کنترلگر: دستورات را به بخشهای مدل و نما هدایت میکند. کنترلگر به ورودی کاربر پاسخ میدهد و با شیء مدل داده تعامل میکند. کنترلگر ورودی را دریافت میکند، به صورت اختیاری ورودی را اعتبارسنجی میکند و سپس ورودی را به مدل منتقل میکند.

به عنوان مثال، لیست خرید ما میتواند فرمهای ورودی و دکمههایی داشته باشد که به ما اجازه میدهد اقلام را اضافه یا حذف کنیم. این عملیات نیاز به بهروزرسانی مدل دارند، بنابراین ورودی به کنترلگر ارسال میشود، سپس کنترلگر مدل را بهطور لازم دستکاری میکند و سپس کنترلگر دادههای بهروزرسانی شده را به نما ارسال میکند.
با این حال، ممکن است شما فقط بخواهید نما را بهروزرسانی کنید تا دادهها را در یک فرمت متفاوت نمایش دهد، به عنوان مثال، تغییر ترتیب اقلام به ترتیب الفبایی، یا تغییر کمترین قیمت به بالاترین قیمت. در این حالت، کنترلگر میتواند به طور مستقیم با این مشکل بدون بهروزرسانی مدل برخورد کند.
کاربرد MVC در توسعه نرمافزار
فریمورک MVC به طور گستردهای توسط بسیاری از توسعهدهندگان نرمافزار و همچنین سایر فریمورکها و کتابخانههای نرمافزاری استفاده شده است. این الگو که به طور سنتی برای رابطهای کاربری گرافیکی دسکتاپ (GUI) استفاده میشود، به یک الگوی محبوب برای طراحی برنامههای وب تبدیل شده است.
زبانهای برنامهنویسی محبوب دارای فریمورکهای MVC هستند تا پیادهسازی الگوها را تسهیل کنند، مانند JavaScript، Python، Ruby، PHP، Java و C# که همه دارای فریمورکهای MVC هستند که میتوانند به طور مستقیم برای توسعه برنامههای وب استفاده شوند.
چگونه میتوان آن را با استفاده از نمودار توالی UML نمایش داد؟
در نمودار توالی عمومی MVC زیر، نشان میدهد که شیء نما مسئول ورودی و خروجی کاربر است، به عبارت دیگر، کادر گفتوگو یک مثال خوب از نما است. شیء کنترلگر منطق را پیادهسازی میکند که اجازه میدهد تراکنشها بر روی مدل اجرا شوند. اشیاء مدل منطق کسبوکار و دادههای دقیق را در خود جای میدهند.

مثال نمودار توالی MVC: بخش رزرو هتل
این مثال نمودار توالی نشان میدهد که چگونه میتوان رزروهای هتل را انجام داد. این نمودار توالی رفتار یک سناریوی رزرو هتل را با نشان دادن تعدادی شیء نمونه و پیامهایی که بین این اشیاء منتقل میشود، به تصویر میکشد.

فریمورک MVC مرتبط
برخی دیگر از الگوهای طراحی بر اساس MVC هستند، مانند MVVM (مدل نما مدل)، MVP (مدل نما نمایشدهنده) و MVW (مدل نما)

- مدل فرآیند نرمافزار
- مدل فرآیند نرمافزار چیست؟
- برنامهریزی تطبیقی در مقابل پیشبینی: چه زمانی چابک؟ چه زمانی آبشاری؟
- چرخه عمر توسعه نرمافزار چیست؟
جمعآوری الزامات
توسعه
REST API چیست؟
کد اول در مقابل طراحی اول در رویکرد API
راهنمای عملی برای مهندسی کد
معماری مبتنی بر سرویس (SOA) چیست؟
– فریمورک Swagger در مقابل API Blueprint و ابزارهای خودکار
رویکرد API-First با فریمورک Swagger
This post is also available in Deutsch, English, Español, Français, Bahasa Indonesia, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.