درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
دوره های مرتبط
دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
مدرس: حسین احمدی
این دوره را در 78 قسط خریداری کنید
دوره آموزشی طراحی رابط کاربری با JavaFX
مدرس: hharddy
این دوره را در 13 قسط خریداری کنید
دوره آموزشی ساخت ربات تلگرام
مدرس: taghandiki
این دوره را در 8 قسط خریداری کنید
دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
مدرس: Amirhossein Fazlikhani
این دوره را در 12 قسط خریداری کنید
دوره آموزشی برنامه نویسی حرفه ای پایتون به زبان ساده
مدرس: حسین احمدی
این دوره را در 23 قسط خریداری کنید
دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
مدرس: حسین احمدی
این دوره را در 17 قسط خریداری کنید
دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
مدرس: taghandiki
این دوره را در 20 قسط خریداری کنید
دوره آموزشی Exploit نویسی به زبان Perl
مدرس: dr-iman
این دوره را در 7 قسط خریداری کنید
دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
مدرس: حسین احمدی
این دوره را در 11 قسط خریداری کنید
دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
مدرس: مهدی عادلی
این دوره را در 17 قسط خریداری کنید

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

0 نظرات
124 بازدیدها
انتخاب و استفاده از دیزاین پترن شاید خیلی وقت ها تبدیل به یک مشکل اساسی برای برنامه نویس یا تیم فنی بشه. تکنولوژی مورد استفاده , پلتفرم, اندازه پروژه و.. همه در انتخاب یک معماری مناسب دخیل هستند. امروز اما میخوام درباره اهمیت 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