Sobes.tech
Junior

MVC memarlıq nümunəsi nədir?

sobes.tech Süni İntellekt

AI-dan cavab

MVC (Model-Görünüş-Nəzarətçi) memarlıq nümunəsidir ki, tətbiqi üç bir-biri ilə əlaqəli komponentə bölür:

  • Model: Tətbiqin məlumatlarını və biznes məntiqini təmsil edir. Məlumatların saxlanması, alınması, dəyişdirilməsi və doğrulanması ilə məşğul olur. İstifadəçi interfeysi məntiqini ehtiva etmir.

  • Görünüş: İstifadəçiyə məlumatların göstərilməsindən məsuldur. Model-dən məlumat alır və onları vizuallaşdırır. Biznes məntiqini ehtiva etmir və birbaşa Model ilə qarşılıqlı əlaqədə deyil.

  • Nəzarətçi: Model və Görünüş arasında vasitəçi rolunu oynayır. İstifadəçi tələblərini işləyir, məlumatları əldə etmək/yeni etmək üçün Model ilə qarşılıqlı əlaqədə olur və nəticələri göstərmək üçün Görünüşü seçir.

Əlaqə:

  1. İstifadəçi Görünüş ilə qarşılıqlı əlaqəyə girir.
  2. Görünüş tələbi Nəzarətçiyə göndərir.
  3. Nəzarətçi tələbi işləyir, Model ilə qarşılıqlı əlaqədə olur və məlumatları əldə edir/yeni edir.
  4. Model lazımi əməliyyatları yerinə yetirir.
  5. Nəzarətçi nəticəni Modeldən alır.
  6. Uyğun Görünüş-ü seçir və ona göstərmək üçün məlumatları verir.
  7. Görünüş məlumatları istifadəçiyə göstərir.

Üstünlüklər:

  • Komponentlərin məsuliyyətlərinin bölünməsi.
  • Kodun saxlanması və genişləndirilməsi üçün yaxşılaşdırma.
  • Komponentlərin təkrar istifadə imkanları.
  • Paralel inkişafı asanlaşdırır (Frontend və Backend müstəqil olaraq View/Nəzarətçi və Model üzərində işləyə bilər).
  • Testlərin yaxşılaşdırılması (Model, Görünüş və Nəzarətçi ayrı-ayrılıqda test edilə bilər).

Çətinliklər:

  • Sadə tətbiqlər üçün artıq ola bilər.
  • Fayl və abstraksiya qatlarının sayını artırır.
  • Hər funksiyanın dəqiq olaraq harada yerləşdiriləcəyinin müəyyənləşdirilməsində çətinlik yaradır.

MVC modeli veb inkişafda geniş istifadə olunur, xüsusən backend-ramkalarında (Ruby on Rails, Django, Spring MVC), lakin frontenddə də (məsələn, köhnə Angular versiyalarında və ya kodun təşkilində konsept kimi) istifadə olunur. Təmiz frontend üçün isə MVP və ya MVVM nümunələri daha çox yayılmışdır.