Justified Universities Online Association

انجمن اینترنتی دانشگاه‌های هم‌تراز در رشته‌های نرم‌افزار و IT

Justified Universities Online Association

انجمن اینترنتی دانشگاه‌های هم‌تراز در رشته‌های نرم‌افزار و IT

برنامه‌نویسی ـ درباره MVC


الگوی MVC روشی در توسعه نرم‌افزار است که برای بهبود نگهداشت (Maintainability) سیستم قابل توصیه است. هدف MVC کاهش پیچیدگی طراحی الگوریتم و افزایش انعطاف‌پذیری و نگهداشت‌پذیری Source Codeها است. همچنین از این Pattern برای ساده سازی طراحی در سیستم‌های مستقل از پلتفرم و Self-Organize استفاده می‌شود.
چرخه کاری در MVC به شرح زیر  است:
  1. کاربر با استفاده از واسط کاربری رخدادی در سیستم را ایجاد می‌نماید
  2. Controller رخداد وارده از تشخیص داده و آنرا به یک Function کاری قابل فهم برای Model تبدیل می‌کند.
  3. یک View از Model داده‌های کاری مربوطه را تهیه کرده و Function کاری را نهایی می‌کند.


توصیف MVC با مثال ساده‌تر از به کار بردن ادبیات فنی سنگین (نظیر آنچه در بالا ذکر شد) می‌باشد. یک عکاس را به همراه دوربینش در استودیوی عکاسی در نظر بگیرید که مطابق خواسته مشتری قرار است از یک جعبه عکس بگیرد. جعبه در اینجا نقش Model را بازی می‌کند؛ عکاس Controller است و دوربین نقش View را ایفا خواهد کرد. به دلیل آنکه جعبه هیچ درکی از عکاس و دوربین ندارد کاملا مستقل خواهد بود. این استقلال کاری به عکاس اجازه می‌دهد تا بتواند مطابق خواست خودش دور تا دور جعبه چرخ بزند و از هر چشم‌انداز و زاویه‌ای که خواست عکس تهیه نماید.
معماری‌های Non-MVC تمایل دارند اجزای کاری را به صورت یکپارچه در نظر بگیرند. اگر جعبه، عکاس و دوربین اشیاء کاری مشابهی باشند، به ازای هر بار گرفتن عکس مجبورهستیم این اشیاء در کنار همدیگر قرار داده و Re-Build نماییم. همچنین خود پدیده گرفتن عکس در مثال مذکور مانند نقاشی است که تلاش دارد از چهره خودش پرتره بکشد؛ و لزوماً چنین کاری همیشه ساده نیست.

منابع:
http://st-www.cs.illinois.edu/users/smarch/st-docs/mvc.html

http://programmers.stackexchange.com/questions/127624/what-is-mvc-really