یکی از معماریهای مهم نرم افزاری معماری MVC یا مدل-ویو-کنترلر (Model-View-Controller) است که در طراحی و ساخت اپلیکیشنها و سرویسهای مختلف مورد استفاده قرار میگیرد. یکی از شاخههای دیگر این سبک معماری MVP یا مدل-ویو-پرزنتر (Model-View-Presenter) که بیشتر برای ساخت رابط کاربری (UI) مورد استفاده قرار میگیرد. در این مدل Presenter به عنوان "مرد میانی" حساب شده و تمام منطق برنامه به Presenter ارسال میشود. در این مطلب قصد داریم شما را با معماری نرم افزاری MVP آشنا کنیم و تفاوت آن را با MVC بیان کنیم، همراه ما باشید.
معماری نرم افزار چیست؟
برنامه نویسان بهتر است وقت خود را روی حل مشکلات و چالشهای جدید بگذارند. متاسفانه بسیاری از مسائل تکراری و غیرضروری در هنگام اجرای پروژه وقت برنامه نویسان را میگیرد. همینطور توسعه و نگهداری نرم افزارهایی که از یک الگو یا معماری خاص پیروی نمیکنند، مشکل است. وجود معماریهای مختلفی مثل MVC، MVP یا MVVP کمک میکنند پیچیدگیهای برنامه تا حد ممکن کم شوند و فرآیند توسعه نرم افزار افزایش پیدا کند. معماری یک نرم افزار به تعریف ساختار بندی کلی سیستم و ارتباط آن با سایر بخشها اشاره دارد. هر معماری شامل الگوهای (Pattern) مختلفی است که با توجه به نوع پیاده سازی نرم افزار انتخاب میشوند. پترن هایی مانند MVP به نوعی زیرشاخه معماری نرم افزار محسوب میشوند. این الگوها مانند یک نقشه راه برای توسعه دهنده عمل میکنند و اجازه نمیدهند که او گرفتار تکرار شود. انتخاب معماری نرم افزاری که قصد پیاده سازی آن را دارید باید به گونه ای باشد که نیازمندیهای فنی و عملیاتی سیستم را به خوبی تامین کند.الگوی معماری MVC چیست؟
مدل MVC نوعی معماری نرم افزار است که از 3 بخش تشکیل شده است :- Model : این بخش رابط بین ویو و کنترلر است. مدل خود نیز شامل زیربخشهای Data Model، Business Model و View Model است که وظایفی مانند دریافت و ذخیره اطلاعات، تعامل با داده ها، ارسال اطلاعات و شکل دهی منطق سیستمی را به عهده دارند.
- View: ویو بخشی است که رابط بین کاربر و نرم افزار است و تعامل بین این دو بخش را کنترل میکند.
- Controller: کنترلر رابط بین دو بخش گفته شده است و برای مدیریت درخواستها و عملیاتهای مبتنی بر منطق به کار گرفته میشود.
معماری نرم افزاری MVP چیست؟
معماری MVP الگوی معماری جداگانه ای برای پیاده سازی رابط کاربری نرم افزار دارد که مدل-ویو-پرزنتر (Model-View-Presenter) نام دارد. در این معماری، بخش ارائه دهنده (Presenter) مسئولیت ارائه منطق را به عهده دارد و به دلیل دخاالت داشتن در سازماندهی عملیات سطح بالای سیستمی، فارغ از یک الگوی طراحی، یک الگوی معماری محسوب میشود. به طور کلی این الگوی معماری به کاهش پیچیدگیهای پیاده سازی بخش رابط کاربری نرم افزارها کمک زیادی میکند. مدل MVP به 3 بخش کلی زیر تقسیم میشود:- Model: در نقش یک واسط عمل میکند و داده هایی که باید در رابط کاربری نمایش داده شوند را تعریف میکند.
- View: دادهها را نمایش میدهد و دستورات کاربر را به Presenter ارسال میکند.
- Presenter: مثل یک پل بین Model و View است. Presenter دادههای مختلف را از مخازن (Model) بازیابی میکند و آنها را برای نمایش در View آماده میکند.
- Model: چه چیزی را نشان دهم؟
- View: چطور آن را نمایش دهم؟
- Presenter: به مدل چه فرمتی برای نمایش بدهم و رویدادهای کاربر مثل ورودی دادن را چطور مدیریت کنم؟