Sobes.tech
Junior — Middle

Kā nodrošināt, lai klase darbotos vienlaikus ar vairākām saskarnēm vai realizācijām?

sobes.tech AI

Atbilde no AI

iOS (Swift vai Objective-C) klase var īstenot vairākus protokolus (interfeisus), kas ļauj tai darbā ar dažādiem metožu kopumiem.

Piemērs 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("Lietotājs: \(name), ID: \(id)")
    }
}

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

Tādējādi, klase User vienlaikus īsteno divus interfeisus — Printable un Identifiable. Tas ļauj izmantot objektu dažādos kontekstos, kur ir nepieciešams viens no šiem interfeisiem.

Ja vēlaties strādāt ar dažādām īstenojumiem, varat izmantot kompozīciju vai deleģēšanu, lai pārslēgtos starp tiem.