Sobes.tech
Junior — Middle

Kaip užtikrinti, kad klasė veiktų vienu metu su keliomis sąsajomis ar įgyvendinimais?

sobes.tech AI

Atsakymas iš AI

iOS (Swift arba Objective-C) klasė gali įgyvendinti kelis protokolus (sąsajas), leidžiančius dirbti su skirtingais metodų rinkiniais.

Pavyzdys 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("Vartotojas: \(name), ID: \(id)")
    }
}

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

Taip, klasė User įgyvendina du interfeisus — Printable ir Identifiable. Tai leidžia naudoti objektą skirtinguose kontekstuose, kur reikalingas vienas iš šių interfeisų.

Jei norite dirbti su skirtingomis įgyvendinimais, galite naudoti kompoziciją arba delegavimą, kad galėtumėte perjungti tarp jų.