خصوصيتهاي معماري MVVM
الگوي MVVM تشابههايي با الگوي پياده سازي MVP (Model — View — Presenter) دارااست چون نقش Presenter به وسيله ViewModel اعمال ميگردد. بااينحالا، اشكالات الگوي MVP بوسيله MVVM طراحي اپليكيشن در مشهد بهروشهاي تحت حلگرديده است:
ViewModel هيچ نوع ارجاعي به View ندارد.
ارتباط في مابين View و ViewModel بسيار به ۱ وجود دارااست.
هيچ طريق فعال سازي براي بهروزرساني View نيست.
مزاياي معماري MVVM
معماري MVVM نقاط قوت بسيار متعددي نسبت به دو معماري قبلي خودش را دارااست. درين قسمت از فراگيري MVVM به مزاياي MVVM ميپردازيم.
گسترشدهندگان ميتوانند نرم افزارهايي را پياده سازي نمايند كه ميتوانند تغييرات را در آجل بپذيرند.
يك پياده سازي ماژولار به نرمافزار مي دهد كه آزمايش چگونگي و حفظ كد را ضمانت مينمايد.
ارتقاء امكان به كارگيري دوباره كد
كليه ماژولها غيروابسته مي باشند كه آزمايش پذيري هر لايه را بهبود مي بخشد.
پوشههاي پروژه را قابل حفظ و توليد تغييرات سهل وآسان مينمايد.
معايب معماري MVVM
هرچند معماري اندرويد MVVM مزاياي بسيار متعددي داراست، ولي اين بهاين معنا وجود ندارد كهاين معماري بي نقص ميباشد. اين معماري نيز معايبي دارااست كه دراين نصيب از يادگرفتن MVVM به آن مي پردازيم.
تايپ كردن تمام كد پروژه در يك الگوي معماري فرآيندي مجالبر ميباشد.
نظم و انضباط ظريف از طرف گروه پيشرفتدهنده ما يحتاج ميباشد چون يك تغييرو تحول نابجا ميتواند يكپارچگي معماري را حاد نمايد.
اين الگوي پياده سازي براي پروژههاي خرد ايده آل وجود ندارد.
در صورتي منطق اتصال دادهها خيلي غامض باشد، انواعزدايي نرمافزار مقداري مشقت بارخيس شود.
طرق پيادهسازي MVVM در پروژه
درين نصيب از يادگرفتن MVVM به طرق پيادهسازي MVVM ميپردازيم. ۲ منش براي پيادهسازي الگوي پياده سازي يا اين كه معماري MVVM در پروژههاي اندرويدي وجود دارااست:
با به كار گيري از كتابخانه DataBinding منتشرشده بوسيله Google
به كارگيري از هر ابزاري مانند RxJava براي DataBinding.
اتصال دادهها يا اين كه DataBinding براي پيادهسازي MVVM:
Google كتابخانه Data Binding را براي اندرويد منتشر مينمايد كه به پيشرفتدهندگان اذن مي دهد اجزاي رابط كاربري را در طرحبنديهاي XML با مخازن دادههاي نرم افزار متصل نمايند. اين عمل به دست كم رساندن كد منطق اپ مهم كه با View متصل ميشود ياري مينمايد. ضمن اين، دوطرفه Data Binding براي اتصال شي ءها به طرحبنديهاي XML اعمال مي شود تا شي و طرحبندي هر دو بتوانند دادهها را به يكديگر ارسال نمايند. اين نكته را مياقتدار با نمونه اين يادگرفتن MVVM به تصوير كشيد.
Syntax for the two way data binding is @={variable}
مثالاي از الگوي معماري MVVM
در اينجا يك نمونه از يك اپ اندرويدي User-Login براي علامت دادن اجراي الگوي معماري MVVM در پروژهها نقل شده ميباشد. درين نصيب از يادگرفتن MVVM به پيادهسازي عملي اين معماري مي پردازيم. اپليكيشن از مخاطب مي خواهد شناسه نشاني اينترنتي و راز عبور را وارد نمايد. مبتني بر وروديهاي اخذ گرديده، ViewModel به View استحضار ميدهد كه چه چيزي را بهتيتر يك پيام آزمايش آرم دهد. ViewModel ارجاعي به View نخواهد داشت.
براي فعال كردن DataBinding در اپ اندرويد، كدهاي ذيل مي بايست در فولدر build.gradle(build.gradle (:app)) نرم افزار اضافه شوند:
Enable DataBinding:
android {
dataBinding {
enabled = true
}
}
افزودن تعلق چرخه قدمت:
implementation ‘android.arch.lifecycle:extensions:1.1.1’
در پايين پيادهسازي بدون نقص قدمبهقدم نرم افزار اندرويد User-Login با الگوي MVVM بيان شده ميباشد.
ادامه مطلب
بازدید: