Middle
MVP memarlıq nümunəsi nədir?
sobes.tech Süni İntellekt
AI-dan cavab
MVP (Model-View-Presenter) memarlıq nümunəsi tətbiqi üç əsas hissəyə bölür:
- Model: Məlumatları və biznes məntiqini ehtiva edir. View və ya Presenter-dən asılı deyil və tətbiqin vəziyyətini kapsülləyir.
- View: İstifadəçiyə məlumatların göstərilməsi və istifadəçi fəaliyyətlərinin tutulmasından məsuldur. Bu, saf, passiv, biznes məntiqi olmayan bir təqdimatdır. View, istifadəçi fəaliyyətləri barədə Presenter-ə məlumat verir.
- Presenter: Model və View arasında vasitəçi kimi fəaliyyət göstərir. Model-dən məlumat alır, onları emal edir və göstərmək üçün View-ə ötürür. View-dən hadisələri alır və bu hadisələrə cavab olaraq Model-i idarə edir. Presenter, nə göstəriləcəyi və hansı fəaliyyətlərin həyata keçiriləcəyi barədə qərar qəbul edən məntiqi ehtiva edir.
Üstünlüklər:
- Məsuliyyətlərin bölünməsi: Məntiq və təqdimat arasında aydın bölünmə.
- Test ediləbilənlik: Model və Presenter, istifadəçi interfeysindən asılı olmadığı üçün asanlıqla müstəqil test edilə bilər.
- Dəstək və baxım asanlığı: View, Model və ya Presenter-də edilən dəyişikliklər digər komponentlərə daha az təsir edir.
- Bir Model üçün çoxlu View-lər yaratmaq imkanı: Müxtəlif görünüşlər eyni Presenter və Model məntiqindən istifadə edə bilər.
Əlaqə nümunəsi:
- İstifadəçi View-dəki düyməyə klikləyir.
- View, hadisəni Presenter-ə bildirir (Presenter-in metodunu çağırır).
- Presenter hadisəni alır, məlumatları əldə etmək və ya dəyişdirmək üçün Model-ə daxil olur.
- Model sorğunu emal edir və nəticəni Presenter-ə geri qaytarır.
- Presenter, Model-dən məlumatları alır və View-i yeniləyir (View-in metodlarını çağırır və yeni məlumatları göstərir).
MVP müxtəlif yollarla həyata keçirilə bilər:
- Passiv View: View tamamilə passivdir və yalnız Presenter tərəfindən ötürülən məlumatları göstərir. İstifadəçi girişlərinin emalı ilə bağlı bütün məntiq Presenter-dədir.
- Nəzarətçi ilə müşahidə olunan: View müəyyən bir göstərim məntiqini ehtiva edir və Presenter daha mürəkkəb əməliyyatları və Model ilə qarşılıqlı əlaqəni idarə edir. View, data binding vasitəsilə Model-dən birbaşa vəziyyətini qismən yeniləyə bilər.