الگوی طراحی MVP

رفع ابهام: این پست ربطی به Minimum Viable Product (کمینه محصول پذیرفتنی) ندارد.

یکی از دلایلم برای تغییر شغل عدم یادگیری مباحث جدید برایم بود. کار کنونی چون در حوزه برنامه نویسی موبایل می باشد نیازمند مطالعه بیشتر است. پروژه آیفون نیو از الگوی طراحی (Design pattern) خاصی استفاده می کند که من قبلا اسمش را نشنیده بودم ( به همان دلیلی که پیشتر توضیح دادم). الگوی طراحی Model View Presenter یا به اختصار MVP موضوع بحث این پست است.

بنابر مستندات ویکی پدیا MVP از مشتقات الگوی طراحی دیگری به نام MVC است ( ان شاء الله که با این الگو آشنا هستید –  با یک جستجوی ساده کلی مطلب می توانید برای مطالعه به دست آورید.). در این الگو تمام منطق های مربوط به View در لایه Presenter قرار می گیرد. در این مدل ، لایه View مسئولیت نمایش المان های موجود در صفحه را بر عهده دارد و دارای هیچ گونه شعور و در کی از محیط پیرامون خود نمی باشد ( به روایتی dummy – احمق – است). فرض کنید شما در یک صفحه بر روی یک دکمه کلید می کنید. رویداد کلیک شدن بر روی این دکمه فراخوانی می شود اما در حقیقت نمی داند که باید چی کاری انجام دهد. به همین دلیل منطق و کاری که باید انجام دهد را از لایه Presenter  خود می گیرد. همچنین این لایه برخلاف مدل MVC ، هیچ گونه ارتباطی با لایه Model ندارد و تمامی ارتباطات از لایه مرکزی که همان Presenter است می گذرد.
لایه Presenter در صورت نیاز با Model تعامل برقرار می کند و می تواند نتیجه ای را برگرداند و درنتیجه Presenter که دارای یک رابطه دو سویه با View است می تواند بار فراخوانی متدهایی از View تغییری در وضعیت ظاهری یک صفحه اعمال کند.

MVP vs MVC

MVP vs MVC

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

شاید این مطالب را هم دوست داشته باشید