الگوهای طراحی MVP، MVC و MVVM
الگوهای طراحی، روش‌های طراحی استانداردی هستند که با استفاده از آن‌ها یک نرم‌افزار ساخته می شود. با در نظر گرفتن این روش‌ها تا جای ممکن ریسک طراحی پایین آمده و از طرفی در آینده درک ساختار آن راحت‌تر می‌شود. در تولید واسط کاربری به شیوه سنتی، تولیدکنندگان برای ایجاد نما از پنجره، کنترل‌های کاربر، یا صفحه استفاده می‌کنند و سپس همه کد منطقی (بررسی رویداد، مقداردهی اولیه و مدل داده و …) را در قسمت code behind می‌نویسند و از این‌رو اساساً کد به عنوان قسمتی از همان کلاس محسوب می‌شود. این روش، سایز کلاس نما را افزایش می‌دهد و یک وابستگی شدید بین UI و منطق اتصال داده و عملیات کسب و کار ایجاد می‌کند. در این وضعیت هیچ دو توسعه دهنده‌ای نمی‌توانند روی نمای مشابه به طور همزمان کار کنند و تغییرات یک توسعه‌دهنده ممکن است، باعث تغییر در کد دیگری گردد. بنابراین همه چیر در یکجا قرار می‌گیرد که این مسئله کاملاً با قابلیت نگهداری ، توسعه‌پذیری ، و قابلت تست منافات دارد. بنابراین اگر شما به این مسئله از بالا نگاه کنید، خواهید دید که این مشکل به جهت ارتباط بسیاز زیاد بین آیتهای ذیل بوجود آمده است :

نما (UI)
مدل (نمایش داده در UI)
کد (رسیدگی به رویدادها، اتصال داده و منطق کسب و کار)
تعریف کد در هر الگویی متفاوت است. اگرچه نما و مدل با تعریف یکسان در همه الگوها مورد استفاده قرار می‌گیرد. اگر به دو کارکتر اول در همه الگوهای فوق نگاه‌کنید، دو کارکتر M و V یکسان هستند که نشان‌دهنده مدل و نما می‌باشند. ولی با این حال همه این الگوها متفاوتند و هدف مشترک همه آنها “تفکیک وظایف” می‌باشد. این الگوها اجازه می‌دهند تا برنامه‌های کاربردی با کمترین اتصال را ایجاد نماییم. سه الگوی طراحی MV* وجود دارد که شامل MVC، MVP و MVVM می باشد. از این معماری ها در تکنولوژی های متعددی استفاده می شود.