Sobes.tech
Junior — Middle

Jak zajistit, aby třída fungovala současně s více rozhraními nebo implementacemi?

sobes.tech AI

Odpověď od AI

V iOS (Swift nebo Objective-C) může třída implementovat několik protokolů (rozhraní), což jí umožňuje pracovat s různými sadami metod.

Příklad v 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("Uživatel: \(name), ID: \(id)")
    }
}

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

Tímto způsobem třída User současně implementuje dva rozhraní — Printable a Identifiable. To umožňuje použití objektu v různých kontextech, kde je požadováno jedno z těchto rozhraní.

Pokud chcete pracovat s různými implementacemi, můžete použít kompozici nebo delegaci pro přepínání mezi nimi.