Sobes.tech
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)
        }
    }
}