Junior
MVVM hangi desene aittir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Model-Görünüm-GörünümModeli.
Bileşenlerin sorumlulukları:
- Model: Verileri ve iş mantığını temsil eder. Görünüm veya GörünümModeli hakkında bilgi sahibi değildir.
- Görünüm: Verileri gösterir ve kullanıcı eylemlerini GörünümModeline iletir. İş mantığı içermez.
- GörünümModeli: Model ve Görünüm arasında köprü görevi görür. Sunum mantığını içerir, Model'den gelen verileri Görünüm için dönüştürür ve kullanıcı eylemlerini işler. Doğrudan Görünüm'e bağlı değildir, etkileşim genellikle bağlamalar veya bildirim desenleri aracılığıyla gerçekleşir (örneğin, SwiftUI'de ObservableObject).
Bileşenler arasındaki ilişki:
- Görünüm, GörünümModelindeki değişiklikleri izler.
- GörünümModeli, Model'deki veriler değiştiğinde veya kullanıcı eylemi işlendiğinde Görünüm'ü günceller.
- GörünümModeli, verileri almak veya kaydetmek için Model ile etkileşime girer.
Uygulama örneği (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 = "İsim: \(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)
}
}
}