Sobes.tech
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. Αυτό επιτρέπει τη χρήση του αντικειμένου σε διαφορετικά πλαίσια όπου απαιτείται μία από αυτές τις διασυνδέσεις.

Αν θέλετε να εργαστείτε με διαφορετικές υλοποιήσεις, μπορείτε να χρησιμοποιήσετε σύνθεση ή αναθέσεις για να εναλλάσσεστε μεταξύ τους.