Sobes.tech
Junior — Middle

Come garantire che una classe funzioni contemporaneamente con più interfacce o implementazioni?

sobes.tech AI

Risposta dell'AI

In iOS (Swift o Objective-C), una classe può implementare più protocolli (interfacce), consentendole di lavorare con diversi set di metodi.

Esempio in 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("Utente: \(name), ID: \(id)")
    }
}

let user = User(id: "123", name: "Alice")
user.printInfo()

In questo modo, la classe User implementa contemporaneamente due interfacce — Printable e Identifiable. Questo permette di usare l'oggetto in diversi contesti in cui è richiesto uno di questi interfacce.

Se si desidera lavorare con diverse implementazioni, si può usare la composizione o la delega per passare da una all'altra.