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.