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 განაახლებს 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)
}
}
}