Junior — Middle
Πώς μπορεί να διασφαλιστεί ότι μια κλάση λειτουργεί ταυτόχρονα με πολλά interfaces ή υλοποιήσεις;
sobes.tech AI
Απάντηση από AI
Στο iOS (Swift ή Objective-C), μια κλάση μπορεί να υλοποιεί πολλά πρωτόκολλα (διασυνδέσεις), επιτρέποντάς της να εργάζεται με διαφορετικά σύνολα μεθόδων.
Παράδειγμα σε Swift:
protocol Printable {
func printInfo()
}
protocol Identifiable {
var id: String { get }
}
class User: Printable, Identifiable {
var id: String
var name: String
init(id: String, name: String) {
self.id = id
self.name = name
}
func printInfo() {
print("Χρήστης: \(name), ID: \(id)")
}
}
let user = User(id: "123", name: "Alice")
user.printInfo()
Έτσι, η κλάση User υλοποιεί ταυτόχρονα δύο διασυνδέσεις — Printable και Identifiable. Αυτό επιτρέπει τη χρήση του αντικειμένου σε διαφορετικά πλαίσια όπου απαιτείται μία από αυτές τις διασυνδέσεις.
Αν θέλετε να εργαστείτε με διαφορετικές υλοποιήσεις, μπορείτε να χρησιμοποιήσετε σύνθεση ή αναθέσεις για να εναλλάσσεστε μεταξύ τους.