Sobes.tech
Middle

MVP arxitektura naqshasi nima?

sobes.tech AI

AIdan javob

MVP (Model-View-Presenter) arxitektura naqshasi bo‘lib, ilovani uchta asosiy qismga bo‘linadi:

  1. Model: Ma’lumotlar va biznes mantiqini o‘z ichiga oladi. View yoki Presenter’dan mustaqil bo‘lib, ilova holatini inkapsulyatsiya qiladi.
  2. View: Foydalanuvchiga ma’lumotlarni ko‘rsatish va foydalanuvchi harakatlarini ushlash uchun javobgardir. Bu toza, passiv, biznes mantiqini o‘z ichiga olmaydigan taqdimot. View, foydalanuvchi harakatlari haqida Presenter’ga xabar beradi.
  3. Presenter: Model va View o‘rtasida vositachi sifatida xizmat qiladi. Model’dan ma’lumot oladi, ularni qayta ishlaydi va ko‘rsatish uchun View’ga uzatadi. View’dan voqealarni oladi va bu voqealarga javob berib, Model’ni boshqaradi. Presenter, nima ko‘rsatilishi va qanday harakatlar bajarilishi haqida qaror qabul qilish mantiqini o‘z ichiga oladi.

Afzalliklar:

  • Mas’uliyatlarni ajratish: Mantiq va taqdimot aniq ajratilgan.
  • Test qilish imkoniyati: Model va Presenter, ular foydalanuvchi interfeysiga bog‘liq bo‘lmaganligi uchun, izolyatsiya qilingan holda oson test qilinadi.
  • Qo‘llab-quvvatlash osonligi: View, Model yoki Presenter’dagi o‘zgarishlar boshqa komponentlarga kamroq ta’sir qiladi.
  • Bir Model uchun bir nechta View yaratish imkoniyati: Turli ko‘rinishlar, bir xil Presenter va Model mantiqidan foydalanishi mumkin.

Interaksiya misoli:

  1. Foydalanuvchi View’da tugmani bosadi.
  2. View, voqeani Presenter’ga bildiradi (Presenter metodini chaqiradi).
  3. Presenter voqeani oladi, Model’ga kirib, ma’lumotlarni olish yoki o‘zgartirish uchun murojaat qiladi.
  4. Model so‘rovni bajaradi va natijani Presenter’ga qaytaradi.
  5. Presenter, Model’dan ma’lumotlarni oladi va View’ni yangilaydi (View metodlarini chaqirib, yangi ma’lumotlarni ko‘rsatadi).

MVP, turli usullarda amalga oshirilishi mumkin:

  • Passiv View: View to‘liq passiv bo‘lib, faqat Presenter tomonidan uzatilgan ma’lumotlarni ko‘rsatadi. Foydalanuvchi kirishlarini qayta ishlash mantiqi, Presenter’da bo‘ladi.
  • Supervizorlik qiluvchi controller: View, ma’lum bir ko‘rsatish mantiqini o‘z ichiga oladi, va Presenter, murakkabroq operatsiyalar va Model bilan o‘zaro ta’sirni boshqaradi. View, data binding orqali Model’dan to‘g‘ridan-to‘g‘ri, qisman holatini yangilashi mumkin.