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)
}
}
}