Model-View-Controller

Tarix

Grafik foydalanuvchi interfeysini dastlabki ishlab chiqishda muhim tushunchalardan biri bo'lgan,MVC dasturiy ta'minot konstruksiyalarini ularning vazifalariga ko'ra amalga oshirish va ularni tavsiflashdagi ilk yondashuvlardan biri hisoblanadi.

Trygve Reenskaug, 1970-yil Xerox Palo Alto Tadqiqotlar Markazi(PARC)da SmallTalk-79 dasturlash tilida MVC'ni tanishtirdi. 1980-yillarda Jim Altthoff va boshqalar Smalltalk-80 klass kutubxonasi uchun MVC'ning birinchi versiyasini ishlab chiqishdi. Faqat keyinroq, 1988-yilda "The Journal of Object Technology"(Obyekt texnologiyalar jurnali) da MVC, umumiy konseptsiya sifatida maqola chop etildi.

MVC andozasi(ingliz tilida pattern, rus tilida шаблон) keyinchalik riovjlandi, shuningdek MVC'ni turli xil kontekstlarga moslashtiradigan iyerarxik model-view-controller(HMVC), model-view-adapter(MVA), model-view-presenter(MVP), model-view-viewmodel(MVVM) va boshqa  turli xil variantlari paydo bo'ldi.

MVC'ni veb-ilovalarda qo'llash NeXTning Objective-C dasturlash tilida yozilgan va MVC tamoyillarini hayotga tadbiq etgan WebObjects'i kirib kelgandan so'ng 1996-yilda ommalashib ketadi. WebObjects Javaga o'tkazilgandan so'ng, MVC Java dasturchilari orasida ham keng ommalashdi. MVC ko'pgina dasturlash tillarida World Wide Web ilovalari dizayni sifatida keng qabul qilindi. Turli xil veb freymvorklar shu andozadan foydalangan holda yaratildi.

MVC'dan foydalanishdan maqsad

MVC, ilovaning turli xil komponentalarini ajratib ishlatishni talab qilgani uchun, dasturchilar bir-biriga halaqit yoki ishini bo'lib turmasdan, turli xil komponentlari ustida paralell ravishda ishlash qobiliyatiga ega bo'lishiadi. Masalan, bir jamoa o'zining dasturchilarini front-end va back-end qismlari uchun ma'sul qilib qo'yishlari mumkin. Back-end dasturchilar ma'lumot strukturasini tuzishsa va aksincha front-end dasturchilar ma'lumot strukturasi mavjud bo'lgandan keyingi ilovaning ko'rinishini tuzishlari mumkin bo'ladi.

Koddan qayta foydalanish mumkinligi

MVC arxitekturasi tamoyillari qayta foydalanib bo'ladigan kod yozishni ta'minlaydi.

Afzalliklari

  • Bir vaqtni o'zida ishlab chiqish
  • Bitta o'zgartirish butun ilovaga ta'sir qilmaydi
  • Bitta model uchun bir va undan ortiq shablonlar(views)
  • Katta o'lchamdagi veb-ilovalar uchun ideal tanlov
  • Hamjihatlikda ishlash

MVC ishlash prinsipi

1. Model

Model - ilovadagi ma'lumotlarni boshqarishga ma'sul. U view'dan kelgan so'rovga hamda o'zini yangilash uchun controller'dagi ko'rsatmaga javob beradi.

2. View

View - ilova ichida obyektlarni namoyish etishni anglatadi. Aniqroq aytadigan bo'lsak, u foydalanuvchi ko'radigan har qanday komponenta hisoblanadi. Oddiygina shablon deb ataymiz.

3. Controller

Controller - ikkala model va views'dagi o'zgarishlarni yangilaydi. U kiritish(input) qabul qiladi va tegishli update(o'zgarish, yangilanish)ni bajaradi. Misol uchun, controller - view orqali kiritilgan ma'lumotni qabul qiladi va keyin model yordamida ma'lumotni qayta ishlab, yana qayta view'ga jo'natadi.