موضوع مقاله: مدل-نما-کنترل‌گر | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # مدل-نما-کنترل‌گر | مقدمه: ۹۶۴ هدف الگوی ساختاری ام‌وی‌سی صرفاً یکپارچگی در ساختار نرم‌افزار است و به کمک آن بدست‌گیری نرم‌افزار در راستای مدیریت و گسترش به سادگی انجام می‌گیرد. | ## بخش 1: مدل-نما-کنترل‌گر | تاریخچه در یکی از بینش‌های ابتدایی در ابتدای گسترش و پیشرفت واسط گرافیکی کاربر MVC به عنوان یکی از راه حل‌ها و بکارگیری ساختار نرم‌افزاری به عنوان یک وظیفه انتخاب شد. بعداً روند MVC توسط توسعه دهندگان جاوا معروف شد وقتی وب ابجکت‌ها به جاوا مربوط شدند. مرور کلی گرچه‌ام‌وی‌سی گونه‌های بسیار دارد، کنترل جریان عموماً به صورت زیر است: کاربر به نوعی با میانجی کاربردی در اندر کنش است (برای مثال با فشردن دکمه ماوس). کنترل گر رویداد وارده از میانجی کاربردی را معمولاً از طریق یک کنترل گر رویداد ثبت شده یا callback کنترل می‌کند و رویداد را به یک عمل مناسب کاربری قابل فهم برای مدل تبدیل می‌کند. کنترل گر، مدل عمل کاربری را اعلام می‌کند که احتمال دارد منجر به تغییری در وضعیت مدل شود. در برخی پیاده‌سازی‌ها کنترل گر ممکن است دستورالعملی عمومی به نما بدهد تا خودش را بارگذاری کند. در سایر پیاده‌سازی‌ها نما به‌طور خودکار توسط مدل از تغییرات در ناظر وضعیت مطلع می‌شود که نیازمند به روزرسانی صفحه است. واسط کاربری منتظر کنش کاربردی بیشتری می‌ماند که چرخه کنترل جریان را از نو آغاز می‌کند. | ## بخش 2: مدل-نما-کنترل‌گر | بعضی از پیاده‌سازی‌ها مانند فرم‌های کنسرسیوم وب جهان‌شمول از مفهوم نمودار وابستگی نیز برای خودکار کردن نماها زمان تغییر مدل استفاده می‌کنند. هدف ام‌وی‌سی -با جداسازی مدل و نما- کاهش پیچیدگی طراحی الگوریتم و افزایش نرمی و نگهداشت‌پذیری کد مبدأ است. همچنین ام‌وی‌سی برای ساده‌سازی طراحی سیستم‌های خودرای و خودمدیریتی استفاده می‌شود. توضیحات مانند بقیهٔ معماری نرم‌افزارها MVC راه حل اصلی یک مشکل است در حالی که می‌تواند خود را با هر سیستمی وفق دهد. معماری MVC با یک شرح سنتی به صورت زیر است: اجزا: مدل: قسمت اصلی و مرکزی است که رفتار اپلیکیشن را در قالب problem domain (دامنهٔ مشکل) اظهار می‌کند و از واسط کاربری مستقل است و به‌طور مستقیم داده و منطق وقوانین اپلیکیشن را مدیریت می‌کند. چند دید برای اطلاعات یکسان ممکن است برای مثال یک بار چارت برای مدیر و یک تولبار برای حسابداران. برهم کنش: به علاوه برای تقسیم اپلیکیشن به سه قسمت، طراحی مدل و دید و کنترلر برهم کنش بین ان‌ها را مشخص می‌کند. یک مدل(model) دادهٔ بازیابی شده از دستور کنترلر و نمایش داده شده در دید را ذخیره می‌کند. | ## بخش 3: مدل-نما-کنترل‌گر | یک کنترلر می‌تواند با فرستادن دستور به مدل وضعیت مدل را ارتقا دهد (تغییر یک سند). همچنین می‌تواند فرمان‌ها را به دیدهای مرتبط بفرستد تا حضور دید را د مدل تغییر دهد. فایده‌ها و زیان‌ها فایده‌های MVC: ۱-قابلیت پیشرفت دادن هم‌زمان: یعنی هم‌زمان چند نفر می‌توانند روی مدل و کنترلر و دیدها یا همان view کار کنند. برخورد بالا: یعنی گروه‌بندی به صورتی انجام شده که قسمت‌های مرتبط با یکدیگر گروه‌بندی شده‌اند. جفت شدن محدود: یعنی مدل‌ها و کنترلرها با یکدیگر ارتباط و وابستگی کمی دارند و این یک مزیت است. سهولت تغییر: چون اشتراک و برخورد میان قسمت‌های مختلف کم است امکان تغییر دادن قسمت‌های مختلف آسان است. مضرات MVC: هدایت یا دنبال کردن کد: هدایت یا دنبال کردن فریم وورک می‌تواند پیچیده باشد زیرا به این نیاز است که کاربر خود را با ضوابط و معیارهای ساختاری MVC وفق دهد. | ## جمع‌بندی | سازگاری چند ساختاری: خصوصیت چند ساختاری بودن باعث پراکندگی و ناسازگاری میان اجزا می‌شود بنا بر ای نیاز است که کسانی که آن را پیشرفت می‌دهند سازگاری و هماهنگی میان اجزا حفظ شود.