مثالی ساده

در این قسمت این معماری را به صورت بسیار ساده پیاده سازی می کنیم

بابت تاخیر عذرخواهی می کنم.

فیلم در آپارات:

توضیحات:

پیروی قسمت های قبلی، مثالی ساده از این معماری جذاب می زنیم.

کلاس های مربوطه را در پکیج های ساخته شده بسازید:

Package

Class

Model

MainModel.kt

ViewModel

MainViewModel

بعد از ساخت این کلاس ها، به یک دیتاکلاس(DataClass) نیاز داریم که اطلاعات را در آن قرار بدهیم و از آن ها استفاده کنیم؛ پس ابتدا یک پکیج به نام DataSource بسازید و سپس درون آن کلاس NameModel را بسازید.

circle-exclamation

کلاس NameModel:

همانطور که می بینید، کلاس ما دارای یک مشخصه به نام name است و قرار است که name را نمایش دهیم.

نکته: در کلاس NameModel شاهد قدرت کاتلین هستیم که چگونه روند توسعه اپلیکیشن های اندرویدی را لذت بخش تر می کند! کد جاوای کلاس NameModel:

قضاوت با شما🤓

ساخت کلاس مدل Model:

کلاس MainModel را باز کنید و شروع کنید:

در پایین کلاس MainModel یک اینترفیس نیز بسازید:

فایل MainModel به صورت کلی:

حال برای انتقال اطلاعات نیاز به یک فانکشن داریم که وقتی اطلاعات آماده شد، آن را به ویومدل تحویل بدهد؛ اطلاعات ما آرایه ای از نوع NameModel می باشد.

پس درون اینترفیس خود به این صورت عمل کنید:

و در نهایت به این صورت خواهد شد:

در کلاس مدل خود نیاز داریم که اطلاعات را فراخوانی کنیم، در این صورت از اطلاعات ساختی استفاده خواهیم کرد. فانکشن لود کردن اطلاعات را به این صورت بنویسید:

در اینجا برای ورودی فانکشن خود، از اینترفیسی که ساختیم استفاده می کنیم و از طریق آن، هنگامی که اطاعات آماده شد، آن ها را به ویومدل انتقال می دهیم.

برای شبیه سازی، ما می خواهیم بعد از سه ثانیه، اطلاعات را انتقال دهیم، برای این کار به این صورت عمل کنید:

سپس درون براکت یک آرایه بسازید و چندین عضو به آن اضافه کنید:

و حالا آن را به اینترفیس خود پاس بدهید:

فانکشن شما در نهایت:

تبریک میگم! شما مدل خود را ساختید:

ساخت کلاس ViewModel:

مثل کلاس مدل عمل خواهیم کرد:

در اینجا برای انتقال اطلاعات به ویو نیز به یک اینترفیس نیاز داریم. پس اینترفیس MainViewModelCallback را قرار می دهیم.

در اینترفیس MainViewModelCallBack یک فانکشن به صورت زیر ایجاد کنید:

و در آخر باید به این صورت باشد:

حالا ما نیاز داریم که از طریق ویومدل، اجزای ویو مثلا پراگرس بار و... را کنترل کنیم! پس از درون ویومدل یک متغیر منطقی (boolean) را تشکلیل دهید:

مختصری از ObservableFieldarrow-up-right:

بخشی از کتابخانه DataBindingarrow-up-right است که میتوان از طریق آن بر روی اطلاعات bind شده نظارت داشت!

حالا باید از MainModelCallback درون MainViewModel استفاده کنیم پس آن را Implement می کنیم: به این صورت:

بعد از این کار، شما باید متود های داخل اینترفیس را نیز Implement کنید:

حالا کلاس شما باید اینگونه باشد:

Last updated