Junior
MVVM кай шаблонго тиешелүү?
sobes.tech AI
AIден жооп
Model-View-ViewModel.
Компоненттердин жоопкерчиликтери:
- Model: Маалыматтарды жана бизнес логиканы көрсөтөт. View же ViewModel жөнүндө билбейт.
- View: Маалыматтарды көрсөтөт жана колдонуучунун аракеттерин ViewModelге жиберет. Бизнес логикасын камтыбайт.
- ViewModel: Model жана Viewду байланыштырат. Презентация логикасын камтыйт, Modelден келген маалыматтарды View үчүн түрдүү кылат жана колдонуучунун аракеттерин иштетет. Түздөн-түз View менен байланышы жок, көбүнчө байланыштыруу же билдирүү үлгүлөрү аркылуу (мисалы, ObservableObject SwiftUIда) өз ара аракеттенет.
Компоненттердин ортосундагы байланыш:
- View, ViewModelдеги өзгөрүүлөргө жазылат.
- ViewModel, Modelдеги маалыматтар өзгөргөндө же колдонуучунун аракеттерин иштеткенде Viewду жаңыртат.
- ViewModel, маалыматтарды алуу же сактоо үчүн Model менен иштешет.
Ишке ашыруу мисалы (SwiftUI):
// Model
struct User {
let name: String
let age: Int
}
// ViewModel
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 = "Аты: \(user.name)"
self.userAge = "Жашы: \(user.age)"
}
}
// View
import SwiftUI
struct UserView: View {
@ObservedObject var viewModel: UserViewModel
var body: some View {
VStack {
Text(viewModel.userName)
Text(viewModel.userAge)
}
}
}