Junior — Middle
Kuidas te realiseerite MVVM arhitektuurimustri UIKitiga töötades?
sobes.tech AI
Vastus AI-lt
UIKit-s arhitektuurimuster MVVM (Model-View-ViewModel) realiseeritakse vastutuse jaotamise kaudu kolme komponendi vahel:
- Model — andmed ja äriloogika.
- View — visuaalsed elemendid (UIView, UIViewController).
- ViewModel — vahendaja, mis teisendab mudelist saadud andmed sobivasse vormingusse, et neid View-s kuvada.
UIKit-s MVVM-i rakendamine hõlmab tavaliselt:
- Luua ViewModel, mis sisaldab omadusi ja meetodeid andmete ettevalmistamiseks.
- ViewController registreerub muutustele ViewModel-is (KVO, Combine, RxSwift või delegaatide kaudu) ning uuendab UI-d.
- ViewModel ei sisalda viiteid View-le, mis suurendab testitavust.
Näide lihtsustatud ViewModel-ist:
class UserViewModel {
var name: String
var onNameChanged: (() -> Void)?
private var user: User {
didSet {
name = user.name.uppercased()
onNameChanged?()
}
}
init(user: User) {
self.user = user
self.name = user.name.uppercased()
}
func updateName(_ newName: String) {
user.name = newName
}
}
ViewControlleris tellib aboneeruma onNameChanged ja uuendab UI andmete muutmisel.