Junior — Middle
როგორ ახორციელებთ MVVM არქიტექტურულ ნიმუშს UIKit-თან მუშაობისას?
sobes.tech AI
პასუხი AI-სგან
UIKit-ში MVVM (Model-View-ViewModel) არქიტექტურული ნიმუში ხორციელდება პასუხისმგებლობების გაყოფით სამ კომპონენტს შორის:
- Model — მონაცემები და ბიზნეს ლოგიკა.
- View — ვიზუალური ელემენტები (UIView, UIViewController).
- ViewModel — შუამავალი, რომელიც გარდაქმნის მოდელიდან მონაცემებს View-ში გამოსაჩენ ფორმატში.
UIKit-ში MVVM-ის განხორციელება ჩვეულებრივ მოიცავს:
- შექმენით ViewModel, რომელიც შეიცავს თვისებებს და მეთოდებს მონაცემების მომზადებისთვის.
- ViewController-ი აბონდება ViewModel-ის ცვლილებებს (KVO, Combine, RxSwift ან დელეგატების საშუალებით) და განაახლებს UI-ს.
- ViewModel არ შეიცავს View-ის მითითებებს, რაც ზრდის ტესტირებადობას.
სადავიწროებული ViewModel-ის მაგალითი:
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
}
}
ViewController-ში აბონდება onNameChanged-ს და განაახლებს UI-ს მონაცემების ცვლილებისას.