Sobes.tech
Junior — Middle

როგორ შეიძლება უზრუნველყოს კლასი ერთდროულად მუშაობა რამდენიმე ინტერფეისთან ან განსახორციელებასთან?

sobes.tech AI

პასუხი AI-სგან

iOS-да (Swift яки Objective-C) класс берничә протоколны (интерфейсны) гамәлгә ашыра ала, бу аңа төрле методлар җыелмасы белән эшләргә мөмкинлек бирә.

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("Кулланучы: \(name), ID: \(id)")
    }
}

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

Шулай итеп, User классы бер үк вакытта ике интерфейсны — Printable һәм Identifiable — гамәлгә ашыра. Бу объектны төрле контекстларда кулланырга мөмкинлек бирә, анда бу интерфейсларның берсе кирәк.

Әгәр төрле гамәлгә ашырулар белән эшләргә телисез икән, композиция яки делегирование кулланырга мөмкин.