Sobes.tech
Junior — Middle

Como garantir que uma classe funcione simultaneamente com várias interfaces ou implementações?

sobes.tech IA

Resposta da IA

No iOS (Swift ou Objective-C), uma classe pode implementar vários protocolos (interfaces), permitindo-lhe trabalhar com diferentes conjuntos de métodos.

Exemplo em 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("Utilizador: \(name), ID: \(id)")
    }
}

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

Assim, a classe User implementa simultaneamente duas interfaces — Printable e Identifiable. Isto permite usar o objeto em diferentes contextos onde é necessário um desses interfaces.

Se precisar trabalhar com diferentes implementações, pode usar composição ou delegação para alternar entre elas.