درخواست های ارتباط
جستجو تنظیمات
لیست دوستان من

چرا از MvvM به جای MVP باید در اندروید استفاده کنیم

0 نظرات

انتخاب و استفاده از دیزاین پترن شاید خیلی وقت ها تبدیل به یک مشکل اساسی برای برنامه نویس یا تیم فنی بشه. تکنولوژی مورد استفاده , پلتفرم, اندازه پروژه و.. همه در انتخاب یک معماری مناسب دخیل هستند. امروز اما میخوام درباره اهمیت MVVM در برنامه نویسی اندروید صحبت کنم.

Image

میدونیم که اندروید بصورت پیشفرض از معماری MVC تا حدودی استفاده می کنه جایی که اکتیویتی مسئول اکثر عملیات های منطقی است. برای پروژه های کوچک این نوع معماری بدون هیچ مشکلی کار میکنه ولی اگر پروژه شما گسترش پیدا کنه باید به سراغ MVP یا MVVM برید.

چرا MVVM


معماری MVP تقریبا پر طرفدار ترین معماری در توسعه اندروید هست و بدون شک قدرت خیلی زیادی هم داره اما نکته مهمی که وجود داره این هست که "هیچ چیز بی نقص نیست" و طبیعتا MVP هم نواقص مخصوص به خودش و داره.اهمیت MVVM زمانی بیشتر میشه که متوجه بشیم گوگل هم معماری و کامپوننت های MVVM و برای اندروید پیشنهاد کرده و کتابخونه های مختلفی هم برای این کار توسعه داده.به تصاویر زیر درباره دو معماری توجه کنید.

Image

Image

آیا میتونید تفاوت نحوه کار و متوجه بشید؟ بذارید با مشکلی که MVP ایجاد میکنه شروع کنم.

اتصال محکم


برای هر اکتیویتی یا فرگمنت (View) ما نیاز به یک presenter در واقع این رابطه یک به یک بزرگترین مشکل ما هست. در این زمان اگر ما نیاز به یک تغییر کوچیک داشته باشیم مجبور میشیم که خیلی روابط خودمون و دست خوش تغییر دهیم و ما نیاز داریم که همه چیز به شکل توزیع شده ای طراحی بشه که MVVM این قابلیت و داره.ViewModels یک کلاس ساده هست که با Model یا قسمت منطقی در ارتباط هست و فقط اطلاعات و نگهداری میکنه و کاری با نحوه مصرف این اطلاعات نداره.فقط View با ViewModels در ارتباط هست و نه برعکس این مشکل روابط یک به یک و حل میکنه یعنی هر View میتونه به چندین ViewModels رفرنس داشته باشه.

تست


از اونجایی که Presenters به سختی محدود به View هست نوشتن تست های مختلف برای MVP کمی دشوار تر هست. اما به دلیل اینکه ViewModels وابستگی زیاد خاصی به View نداره نوشتن و انجام تست های گوناگون راحت تر انجام میشه.

آیا این مطلب را پسندیدید؟
هیچ نظری ارسال نشده است

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

arrow