Junior — Middle
Πώς υλοποιείτε το αρχιτεκτονικό μοτίβο MVVM κατά την ανάπτυξη με UIKit;
sobes.tech AI
Απάντηση από AI
Το αρχιτεκτονικό μοτίβο MVVM (Model-View-ViewModel) στο UIKit υλοποιείται μέσω του διαχωρισμού των ευθυνών μεταξύ τριών συστατικών:
- Model — δεδομένα και επιχειρηματική λογική.
- View — οπτικά στοιχεία της διεπαφής (UIView, UIViewController).
- ViewModel — μεσάζων που μετατρέπει τα δεδομένα από το μοντέλο σε μια μορφή κατάλληλη για εμφάνιση στη View.
Η υλοποίηση του MVVM στο UIKit περιλαμβάνει συνήθως:
- Δημιουργία ενός ViewModel που περιέχει ιδιότητες και μεθόδους για την προετοιμασία των δεδομένων.
- Ο ViewController εγγράφεται στις αλλαγές στο ViewModel (μέσω KVO, Combine, RxSwift ή delegates) και ενημερώνει το 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 όταν αλλάζουν τα δεδομένα.