Junior
MVVM hansı şablona aiddir?
sobes.tech Süni İntellekt
AI-dan cavab
Model-Görünüm-GörünümModeli.
Tərkib hissələrinin məsuliyyətləri:
- Model: Məlumatları və biznes məntiqini təmsil edir. Görünüm və ya GörünümModeli haqqında məlumatı yoxdur.
- Görünüm: Məlumatları göstərir və istifadəçi fəaliyyətlərini GörünümModelinə göndərir. Biznes məntiqi daxil deyil.
- GörünümModeli: Model və Görünüm arasında əlaqə yaradır. Təqdimat məntiqini ehtiva edir, Modeldən gələn məlumatları Görünüm üçün çevrilir və istifadəçi fəaliyyətlərini idarə edir. Birbaşa Görünümə bağlı deyil, əlaqə adətən bağlamalar və ya bildiriş nümunələri vasitəsilə həyata keçirilir (məsələn, ObservableObject SwiftUI-də).
Komponentlər arasındakı əlaqə:
- Görünüm, GörünümModelindəki dəyişiklikləri izləyir.
- GörünümModeli, Modeldəki məlumatlar dəyişəndə və ya istifadəçi fəaliyyətləri işlənəndə Görünümü yeniləyir.
- GörünümModeli, məlumatları almaq və ya saxlamaq üçün Model ilə qarşılıqlı əlaqədə olur.
İcra nümunəsi (SwiftUI):
// Model
struct User {
let name: String
let age: Int
}
// GörünümModeli
import SwiftUI
final class UserViewModel: ObservableObject {
@Published var userName: String = ""
@Published var userAge: String = ""
private let user: User
init(user: User) {
self.user = user
self.userName = "Ad: \(user.name)"
self.userAge = "Yaş: \(user.age)"
}
}
// Görünüm
import SwiftUI
struct UserView: View {
@ObservedObject var viewModel: UserViewModel
var body: some View {
VStack {
Text(viewModel.userName)
Text(viewModel.userAge)
}
}
}