MVP UI Pattern - قسمت اول

سه شنبه, شهریور ۱۹, ۱۳۸۷ ۲۲:۳۶
ارسال شده در قسمت : تکنولوژی, دات نت, طراحی نرم افزار

در توسعه واسط کاربری(GUI Development) نرم افزار، مشکلات مشابه زیادی وجود دارد که ما را به سمت راه حل های مشابهی هدایت می کند(Pattern ها).

مشخص و متمایز نبودن مسئولیت ها ، باعث ایجاد پیچیدگی در لایه UI می شود و بخش عمده ای این پیچیدگی اضافه شدن بخش های عمده ای از وظایف لایه های دیگر ، مخصوصاً Business Logic به این لایه است.

الگوهای متفاوتی برای این مسائل و مشکلات ارائه شده است.برخی از آنها تغییر پیدا کرده و به بلوغ رسیده اند و برخی دیگر کاملاً منسوخ شده اند.الگوی Model View Presenter یا همان MVP، الگوی مناسبی برای رفع این مشکلات است.

در این الگو سعی بر آن است که کد Business Logic به طور کامل از لایه UI جدا شود.این مسأله از چند جهت حائز اهمیت است.اول افزایش قابلیت تست اتوماتیک است که نهایتاً منجر به کامل تر و آسانتر شدن تست خواهد شد و دوم امکان استفاده مجدد(Reusability) از لایه Presentation.

در این مدل UI و Presentation ، دو لایه کاملاً مجزا خواهند بود که مسئولیت های متفاوتی دارند.

UI فقط شامل مجموعه ای از کنترلها، فرم ها و User Control هاست.لایه Presentation نیز مسئولیت پیاده سازی رفتارهای این کنترل ها مانند اعتبارسنجی را بر عهده دارد.

در این مدل این نکته بسیار مهم است که لایه Presentation هیچ اطلاعی از لایه UI ندارد و از طریق یک Interface با این لایه صحبت می کند.به عبارتی دیگر UI در این الگو باید اینترفیسی را پیاده سازی کند که لایه Presentation به شکل کاملاً Abstract با این اینترفیس کار می کند و هیچ اطلاعی از پیاده سازی آن ندارد.یکی از مهمترین نتایج این مهم استفاده مجدد(Reusability) از لایه Presentation در تکنولوژی های مختلف UI مانند وب، ویندوز، Device و … است.شکل زیر این مسأله را به خوبی نشان می دهد.

Presenter با استفاده از اینترفیس IView با View صحبت می کند بدون اینکه هیچ اطلاعی از پیاده سازی آن داشته باشد.این مثال ، نمومه بسیار ساده ای از پیاده سازی MVP در ASP .NET است.مثال دیگری که می توان به آن استناد کرد، مثالی از Code Project است.

كلمات كليدي : , , ,

يك ديدگاه براي “MVP UI Pattern - قسمت اول”

  1. Saffron گفته است :

    آبان ۸م, ۱۳۸۷ در ۵:۴۷ ب.ظ

    You write very well.

پاسخ به نوشته