۱- Seperation of Concerns (جدا سازی بخشهای مختلف): یعنی هر بخشی باید کار خودش را انجام دهد.
۲- loose coupling: کاهش وابستگی بین بخشهای مختلف برنامه
۳- قابلیتهای نگهداری و خوانایی بالا
۴- افزایش قابلیت unit test و تست پذیری
۵- کمک به جدا سازی کار طراح UI و برنامهنویس Code behind
پیادهسازی mvp هم مثل خیلی از design patternهای دیگر بر خلاف ظاهرش بسیار ساده است. mvp روش چندان عجیبی نیست به طوری که حتی ممکن است روش پیادهسازی UIی که خود شما تا حالا استفاده میکردهاید به طور ناخودآگاه شباهت زیادی به mvp داشته باشد. در روش mvp به ازای هر فرم سه کلاس برای model، view و presenter وجود دارد. البته برای view و model اینترفیس هم وجود دارد. view توسط فرم ویندوزی پیادهسازی میشود، model به منطق برنامه یا مثلاً دیتابیس وصل است، presenter هم رابط این دو تا است.
بهترین راه یادگیری mvp استفاده از مثال است. برای یادگیری بیشتر به منابع زیر مراجعه کنید:
http://www.dotnettips.info/2009/08/mvp.html
http://www.codeproject.com/KB/architecture/WinForms_MVP.aspx
http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/
دیدگاهها
سلام جناب محبی.
از مطالب خوبتون تشکر می کنم.
شما تفاوت MVP و MVC را در چه می بینید ؟
البته این مورد که فرمودین MVP بیشتر در Win form استفاده می شه را جایی ندیدم.
تشکر
سلام، ممنون. راستشو بخای من معمولاً خیلی درگیر بحثهای تئوریک مثل تفاوت mvc و mvp نمیشم. همین که میبینم mvp انتخاب خوبی برای کاربرد مورد نظرم هست، بقیه چیزها رو فراموش میکنم.