Junior — Middle
Ποιος είναι ο ρόλος των αντιπροσώπων στον κώδικά σας και για ποιο λόγο χρησιμοποιούνται;
sobes.tech AI
Απάντηση από AI
Οι αντιπρόσωποι (delegates) στο iOS είναι ένα μοτίβο σχεδίασης που επιτρέπει σε ένα αντικείμενο να μεταφέρει την ευθύνη για την εκτέλεση ορισμένων ενεργειών σε ένα άλλο αντικείμενο. Είναι ένας τρόπος οργάνωσης της ανατροφοδότησης και της επικοινωνίας μεταξύ αντικειμένων χωρίς ισχυρή συσχέτιση.
Ρόλος των αντιπροσώπων:
- Επιτρέπουν σε ένα αντικείμενο να ενημερώνει ένα άλλο για γεγονότα.
- Παρέχουν προσαρμογή της συμπεριφοράς χωρίς κληρονομικότητα.
- Απλοποιούν τον διαχωρισμό των ευθυνών.
Παράδειγμα: Το UITableView χρησιμοποιεί έναν αντιπρόσωπο για τη διαχείριση της επιλογής κελιών. Η κλάση που υλοποιεί το πρωτόκολλο UITableViewDelegate λαμβάνει ειδοποιήσεις σχετικά με τις ενέργειες του χρήστη.
protocol MyDelegate: AnyObject {
func didTapButton()
}
class MyClass {
weak var delegate: MyDelegate?
func buttonTapped() {
delegate?.didTapButton()
}
}
class ViewController: UIViewController, MyDelegate {
let myObject = MyClass()
override func viewDidLoad() {
super.viewDidLoad()
myObject.delegate = self
}
func didTapButton() {
print("Το κουμπί πατήθηκε")
}
}