Junior — Middle
Hogyan biztosítható, hogy egy osztály egyszerre több interfésszel vagy megvalósítással működjön?
sobes.tech MI
Válasz az MI-től
iOS-on (Swift vagy Objective-C) egy osztály több protokollt (interfészt) is megvalósíthat, ami lehetővé teszi számára, hogy különböző módszerkészletekkel dolgozzon.
Példa Swift-ben:
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("Felhasználó: \(name), ID: \(id)")
}
}
let user = User(id: "123", name: "Alice")
user.printInfo()
Így a User osztály egyszerre valósít meg két interfészt — Printable és Identifiable. Ez lehetővé teszi, hogy az objektumot különböző kontextusokban használjuk, ahol ezek közül valamelyik interfész szükséges.
Ha különböző megvalósításokkal szeretne dolgozni, használhat összetételt vagy delegálást a váltáshoz.